คำถามติดแท็ก prolog

2
อะไรคือความแตกต่างทางเทคนิคที่สำคัญระหว่าง Prolog และ miniKanren เกี่ยวกับการเขียนโปรแกรมลอจิก [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อฉันต้องการอ่านข้อมูลเกี่ยวกับการเขียนโปรแกรมลอจิกฉันมักจะสะดุดกับ "หลัก" สองวิธีในปัจจุบัน: miniKanren , minilanguage แนะนำในด้วยเหตุผลอุบายและเป็นที่นิยมในขณะนี้เนื่องจากcore.logic Prolog ภาษาการเขียนโปรแกรมลอจิก "ใหญ่" ตัวแรก สิ่งที่ฉันสนใจตอนนี้: อะไรคือความแตกต่างทางเทคนิคที่สำคัญระหว่างสองสิ่งนี้? มีแนวทางและการนำไปใช้คล้ายกันมากหรือไม่หรือใช้วิธีการเขียนโปรแกรมเชิงตรรกะที่แตกต่างไปจากเดิมอย่างสิ้นเชิง พวกเขามาจากสาขาใดของคณิตศาสตร์และอะไรคือรากฐานทางทฤษฎี?

2
ใช้เป้าหมายซ้ำซ้อนในการค้นหา
(ตามข้อเสนอแนะของ @repeat ) พิจารณาเคียวรีของโปรแกรมแท้1 ?- G_0.จะมีประโยชน์อย่างไรถ้ามีคิวรี่ใด?- G_0, G_0.บ้าง? เชิงอรรถ 1 ไม่มี tabling (เพื่อความปลอดภัย) ข้อ จำกัด ใช้ได้ โพสต์ก่อนหน้าในเรื่อง

1
พฤติกรรมที่ไม่คาดคิดของการแช่แข็ง / 2
ฉันกำลังเล่นกับpredicates prolog-coroutiningfreeze/2และfrozen/2: ?- freeze(X,a=a), frozen(X,Goal). ?- freeze(X,a=a), freeze(Y,b=b), X=Y, frozen(X,Goal). sicstus-prolog (เวอร์ชัน 4.5.1 สำหรับ x86_64) ให้คำตอบเหล่านี้: | ? - freeze (X, a = a), ตรึง (X, เป้าหมาย) เป้าหมาย = prolog: ตรึง (X, ผู้ใช้: (a = a)) , อารัมภบท: ตรึง (X, ผู้ใช้: (a = a))? ; ไม่ | ? - freeze …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.