ฉันเริ่มที่จะเรียนรู้Haskell ฉันยังใหม่กับมันมากและฉันเพิ่งอ่านหนังสือออนไลน์สองสามเล่มเพื่อให้เข้าใจถึงโครงสร้างพื้นฐานของหนังสือเล่มนี้
หนึ่งใน 'มส์' ที่คนคุ้นเคยกับมันมักจะพูดถึงคือ "ถ้ามันรวบรวมมันจะทำงาน *" - ซึ่งฉันคิดว่าเกี่ยวข้องกับความแข็งแกร่งของระบบประเภท
ฉันพยายามที่จะเข้าใจว่าทำไมตรง Haskell จะดีกว่าภาษาพิมพ์แบบคงที่อื่น ๆ ในเรื่องนี้
วางวิธีอื่นผมถือว่าใน Java คุณสามารถทำสิ่งชั่วร้ายเช่นฝังศพ
จะมีอะไรบางอย่างที่มันควรจะเป็นArrayList<String>()
ArrayList<Animal>()
สิ่งที่ชั่วร้ายนี่คือสิ่งที่คุณstring
มีelephant, giraffe
ฯลฯ และถ้ามีคนใส่เข้าไปMercedes
- คอมไพเลอร์ของคุณจะไม่ช่วยคุณ
ถ้าผมไม่ได้ทำArrayList<Animal>()
แล้วในบางจุดในเวลาต่อมาถ้าผมตัดสินใจที่โปรแกรมของฉันไม่ได้จริงๆเกี่ยวกับสัตว์มันเป็นเรื่องของยานพาหนะแล้วฉันสามารถเปลี่ยนการพูด, ฟังก์ชั่นที่ผลิตArrayList<Animal>
ในการผลิตArrayList<Vehicle>
และ IDE ของฉันควรจะบอกฉันทุกที่มี เป็นการพักสะสม
ข้อสันนิษฐานของฉันคือว่านี่คือสิ่งที่ผู้คนหมายถึงโดยระบบพิมพ์ที่แข็งแกร่งแต่ไม่ชัดเจนสำหรับฉันว่าทำไม Haskell ถึงดีกว่า อีกวิธีหนึ่งคุณสามารถเขียน Java ที่ดีหรือไม่ดีฉันคิดว่าคุณสามารถทำได้เหมือนกันใน Haskell (เช่นสิ่งต่าง ๆ เป็นสตริง / ints ที่ควรเป็นประเภทข้อมูลชั้นหนึ่ง)
ฉันสงสัยว่าตัวเองขาดอะไร / สำคัญไป
ฉันมีความสุขมากที่ได้เห็นข้อผิดพลาดในวิธีการของฉัน!
Maybe
จบเท่านั้น ถ้าฉันต้องเลือกเพียงสิ่งเดียวที่ภาษายอดนิยมควรยืมจาก Haskell นี่จะเป็นเช่นนั้น มันเป็นแนวคิดที่ง่ายมาก (ไม่ค่อยน่าสนใจเท่าที่ควรจากมุมมองทางทฤษฎี) แต่เพียงอย่างเดียวนี้จะทำให้งานของเราง่ายขึ้นมาก