รูปแบบแคลคูลัสแสดงถึงขั้นตอนในภาษาหรือเราเพิ่งจะกลับไป LISP?


11

Barry Jay ในหนังสือของเขาอ้างว่าเป็นตัวหนาโดยพื้นฐานแล้วโดยบอกว่าที่หลักสำคัญของโปรแกรมทุกอย่างเป็นอะตอมหรือแต่ง จากนั้นทุกอย่างสามารถทำซ้ำกรองกรองอัพเดทเพียงแค่สำรวจความสัมพันธ์การแต่งเพลงนี้

นี่เป็นขอบเขตใหม่ของวิทยาศาสตร์คอมพิวเตอร์สำหรับภาษาคอมพิวเตอร์หรือเราเพิ่งจะกลับไป LISP


13
การกลับไปที่ Lisp จะเป็นการก้าวไปข้างหน้า
เชน

4
นี่ไม่ใช่คำถามที่กำหนดอย่างแหลมคม: ควรทำให้ชุมชนเป็นวิกิ
Charles Stewart

เห็นด้วย @Shane แต่คิดว่ามันจำเป็นต้องใช้ประเภทและชุดห้องสมุดที่ทันสมัย
hawkeye

คำตอบ:


6

หนึ่งในผลประโยชน์หลักของการทำงานที่ผ่านมาของเจย์ก็คือว่ามันจะช่วยลดรหัสสำเร็จรูปหนึ่งต้องเขียนเพื่อการสำรวจโครงสร้างข้อมูลในการดำเนินการดังกล่าวเป็นแผนที่ แคลคูลัสรูปแบบทำให้หนึ่งสามารถเขียนโค้ดสำรวจเส้นทางหนึ่งครั้งสำหรับโครงสร้างข้อมูลทั้งหมดและให้ใช้ได้กับโครงสร้างข้อมูลของคุณเอง วิธีนี้จะลดจำนวนรหัสที่ต้องการอย่างแน่นอน แต่ไม่อนุญาตให้คุณเขียนโปรแกรมใด ๆ ที่คุณไม่สามารถเขียนได้ แน่นอนว่ามีความคิดที่น่าสนใจมากมายในงาน แต่ก็ยังแสดงให้เห็นว่ามันใช้งานได้จริง


6

ฉันไม่คุ้นเคยกับงานล่าสุดของ Barry Jay แต่งานที่เก่ากว่าของเขารวมถึงสิ่งที่คุณไม่สามารถทำได้ใน Lisp เพราะประเภทให้ข้อมูลเพิ่มเติม

ตัวอย่างเช่นสมมติว่าคุณต้องการกำหนดขนาดของโครงสร้างข้อมูล Lisp มันเป็น 1 อะตอมและnสำหรับรายชื่อของnอะตอมและอื่น ๆ โดยทั่วไปขนาด (x) + ขนาด (y) (cons x y)สำหรับ

ตอนนี้โยนประเภทต่างๆลงในส่วนผสม ขนาดของรายการจะมีความยาว ทีนี้ขนาดรายการลิสต์ของอะตอมเป็นเท่าไหร่? หากคุณพิจารณาโครงสร้างข้อมูลนี้เป็นรายการ (องค์ประกอบที่เกิดขึ้นเป็นรายการของอะตอม) คำตอบคือความยาวของรายการ หากคุณพิจารณาโครงสร้างข้อมูลนี้ว่ามีอะตอมที่ถูกเก็บไว้ในรายการรายการคำตอบคือผลรวมของความยาวของรายการองค์ประกอบ

ประเภทช่วยให้คุณสามารถแยกความแตกต่างระหว่างสองมุมมอง (รูปร่าง) ของข้อมูลดิบ คุณต้องการระบบประเภทที่ให้คุณแยกแยะระหว่าง (รายการ) (List Atom) และ (List List) (Atom) การนำไปใช้ที่แตกต่างกันมากที่สุดของความแตกต่างนี้อยู่กับคลาสประเภท (เช่นใน Haskell)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.