อ่าน 2 นาที
มินิคันเรน
miniKanren เป็นตระกูลของ ภาษาการเขียนโปรแกรม สำหรับ การเขียนโปรแกรมเชิงสัมพันธ์ ซึ่งพัฒนาขึ้นครั้งแรกโดย Will Byrd [ 1 ] เนื่องจาก ความสัมพันธ์เป็นแบบสองทิศทาง หาก miniKanren...
มินิคันเรน
miniKanrenเป็นตระกูลของภาษาการเขียนโปรแกรมสำหรับการเขียนโปรแกรมเชิงสัมพันธ์ซึ่งพัฒนาขึ้นครั้งแรกโดย Will Byrd [ 1 ]เนื่องจากความสัมพันธ์เป็นแบบสองทิศทางหาก miniKanren ได้รับนิพจน์และผลลัพธ์ที่ต้องการ miniKanren สามารถรันนิพจน์ "ย้อนกลับ" โดยค้นหาอินพุตที่เป็นไปได้ทั้งหมดของนิพจน์ที่สร้างผลลัพธ์ที่ต้องการ พฤติกรรมแบบสองทิศทางนี้ช่วยให้ผู้ใช้สามารถจำกัดทั้งอินพุตของโปรแกรมและผลลัพธ์ของโปรแกรมได้พร้อมกัน miniKanren ดำเนินการค้นหาแบบสลับซึ่งในที่สุดจะพบวิธีแก้ปัญหาใด ๆ ที่มีอยู่ แม้ว่าสาขาใดสาขาหนึ่งของต้นไม้การค้นหาจะยาวเป็นอนันต์และไม่มีวิธีแก้ปัญหา หากไม่มีวิธีแก้ปัญหา miniKanren อาจค้นหาไปเรื่อย ๆ หากต้นไม้การค้นหาเป็นอนันต์
ตัวอย่างของโค้ด miniKanren คือevaloเป้าหมายเชิงสัมพันธ์ที่เชื่อมโยงนิพจน์กับค่าที่นิพจน์เหล่านั้นประเมิน เมื่อevaloถูกเรียกใน miniKanren ดังนี้: (evalo q q)มันจะสร้างquinesซึ่งก็คือนิพจน์qที่เมื่อรันแล้วจะประเมินค่าเป็นตัวเอง[ 2 ]
หนังสือThe Reasoned Schemerใช้ miniKanren เพื่อสาธิตการเขียนโปรแกรมเชิงสัมพันธ์ และนำเสนอการใช้งานที่สมบูรณ์ในภาษาScheme [ 3 ]แกนหลักของภาษาพอดีกับหน้ากระดาษสองหน้า การใช้งาน miniKanren ในภาษา Scheme ได้รับการออกแบบให้เข้าใจ แก้ไข และขยายได้ง่าย
microKanren เป็นภาษาอีกภาษาหนึ่งในตระกูล miniKanren ซึ่งโดดเด่นด้วยการใช้งานแบบเรียบง่ายโดยใช้ภาษา Scheme น้อยกว่า 40 บรรทัด[ 4 ]
αleanTAP เป็นโปรแกรมที่เขียนด้วย αKanren ซึ่งเป็นส่วนขยายของ miniKanren สำหรับตรรกะนามนัยเมื่อกำหนดทฤษฎีบทแล้ว มันสามารถค้นหาบทพิสูจน์ได้ ทำให้มันเป็นโปรแกรมพิสูจน์ทฤษฎีบทเมื่อกำหนดบทพิสูจน์แล้ว มันสามารถค้นหาทฤษฎีบทได้ ทำให้มันเป็นโปรแกรมตรวจสอบทฤษฎีบท เมื่อกำหนดส่วนหนึ่งของบทพิสูจน์และส่วนหนึ่งของทฤษฎีบท มันจะเติมส่วนที่ขาดหายไปของบทพิสูจน์และทฤษฎีบท ทำให้มันเป็นโปรแกรมสำรวจทฤษฎีบท[ 1 ]
มีการนำ miniKanren ไปใช้งานในภาษาต่างๆ เช่นClojure , Dart , Haskell , JavaScript , Python , Racket , Ruby , ScalaและSwiftโดยเวอร์ชันมาตรฐานนั้นเป็นภาษาฝังตัวในSchemeไลบรารี core.logic ของ Clojure ได้รับแรงบันดาลใจมาจาก miniKanren
ชื่อคันเร็นมาจากคำภาษาญี่ปุ่น (関連) แปลว่า "ความสัมพันธ์"
ดูเพิ่มเติม
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ มินิคันเรน
miniKanren เป็นตระกูลของ ภาษาการเขียนโปรแกรม สำหรับ การเขียนโปรแกรมเชิงสัมพันธ์ ซึ่งพัฒนาขึ้นครั้งแรกโดย Will Byrd [ 1 ] เนื่องจาก ความสัมพันธ์เป็นแบบสองทิศทาง หาก miniKanren...
ลิงก์ภายนอก
เว็บไซต์อย่างเป็นทางการ ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=MiniKanren&oldid=1355365877 "