บทความนี้แสดงให้เห็นว่ามี combinators (แทนการคำนวณเชิงสัญลักษณ์) ที่ไม่สามารถแสดงด้วยแคลคูลัสแลมบ์ดา (ถ้าฉันเข้าใจสิ่งต่าง ๆ ได้อย่างถูกต้อง):
บทความนี้แสดงให้เห็นว่ามี combinators (แทนการคำนวณเชิงสัญลักษณ์) ที่ไม่สามารถแสดงด้วยแคลคูลัสแลมบ์ดา (ถ้าฉันเข้าใจสิ่งต่าง ๆ ได้อย่างถูกต้อง):
คำตอบ:
มีหลายสิ่งที่เราอาจต้องการทำในทางปฏิบัติและไม่สามารถแสดงออกได้โดยตรงในแคลคูลัสแลมบ์ดา
แคลคูลัส SF เป็นตัวอย่าง พลังแห่งการแสดงออกไม่ได้เป็นข่าว ส่วนที่น่าสนใจของบทความ (ไม่ปรากฏในสไลด์) คือทฤษฎีหมวดหมู่ด้านหลัง เอสเอฟแคลคูลัสจะคล้ายคลึงกับการดำเนินการกระเพื่อมที่คุณให้ฟังก์ชั่นในการตรวจสอบการเป็นตัวแทนของการโต้แย้งของพวกเขา - เพื่อให้คุณสามารถเขียนสิ่งที่ต้องการ⟹(print (lambda (x) (+ x 2)))
"(lambda (x) (+ x 2))"
อีกตัวอย่างที่สำคัญคือPlotkin ของขนานหรือ การพูดอย่างสังหรณ์ใจมีผลลัพธ์ทั่วไปที่ระบุว่าแลมบ์ดาแคลคูลัสเป็นลำดับ: ฟังก์ชันที่รับสองอาร์กิวเมนต์ต้องเลือกหนึ่งเพื่อประเมินก่อน มันเป็นไปไม่ได้ที่จะเขียนคำแลมบ์ดาor
(( or
⊥) ⟹ ⊤
, ( or
⊥⊤) ⟹⊤และor
⊥⊥⟹⊥ (โดย where เป็นคำที่ไม่สิ้นสุดและ and เป็นคำที่สิ้นสุด) สิ่งนี้เรียกว่า "ขนานหรือ" เพราะการใช้งานแบบขนานสามารถทำให้ขั้นตอนเดียวของการลดและหยุดเมื่อใดก็ตามที่การโต้แย้งหนึ่งยุติ
อีกอย่างที่คุณไม่สามารถทำได้ในแคลคูลัสแลมบ์ดาก็คืออินพุต / เอาต์พุต คุณจะต้องเพิ่มดั้งเดิมสำหรับมัน
แน่นอนตัวอย่างทั้งหมดเหล่านี้สามารถแสดงในแคลคูลัสแลมบ์ดาโดยการเพิ่มระดับการเปลี่ยนทิศทางหนึ่งระดับโดยเป็นตัวแทนของคำแลมบ์ดาเป็นข้อมูล แต่โมเดลก็น่าสนใจน้อยลง - คุณสูญเสียความสัมพันธ์ระหว่างฟังก์ชั่นในภาษาที่จำลองและแลมบ์ดา abstractions
คำตอบสำหรับคำถามของคุณขึ้นอยู่กับวิธีที่คุณกำหนด "การคำนวณ" และ "ตัวแทน" ด้ายบน LTU ที่ sclv กล่าวถึงในมืออื่น ๆ ประกอบด้วยส่วนใหญ่ของคนที่พูดคุยที่ผ่านมาแต่ละเนื่องจากอื่น ๆ เพื่อให้คำจำกัดความของคำ misaligned ต่างๆ
ความแตกต่างไม่ใช่พลังการคำนวณอย่างแน่นอน - ทุกระบบภายใต้การพิจารณานั้นเทียบเท่ากับทัวริง ปัญหาคือความเท่าเทียมกันของทัวริงไม่ได้พูดอะไรเกี่ยวกับโครงสร้างหรือความหมายของการแสดงออก สำหรับเรื่องนั้นในรูปแบบที่เรียบง่ายที่สุดของการคำนวณที่ต้องการการเข้ารหัสที่ซับซ้อนหรือสถานะเริ่มต้นที่ไม่สำคัญมันอาจจะไม่ชัดเจนว่าระบบที่มีความสามารถในการคำนวณสากลหรือว่าภาพลวงตาของความเป็นสากลถูกสร้างขึ้นโดยการตีความระบบ . ตัวอย่างเช่นดูการสนทนารายชื่อผู้รับจดหมายเกี่ยวกับเครื่องทัวริงแบบ 2 สถานะ 3 สัญลักษณ์โดยเฉพาะอย่างยิ่งความกังวลที่เกิดขึ้นจาก Vaughan Pratt
ความแตกต่างที่ดึงออกมานั้นอยู่ระหว่าง:
ทัวริง - ความเท่าเทียมเพียงหมายความว่าระบบตรงตามเกณฑ์ที่สามสำหรับฟังก์ชันการคำนวณใด ๆ ในขณะที่มันมักจะเป็นเกณฑ์แรกที่เราสนใจทั้งในระบบที่เป็นทางการของตรรกะหรือภาษาการเขียนโปรแกรม
นั่นเป็นคำอธิบายที่ไม่เป็นทางการ แต่ความคิดที่สำคัญนั้นสามารถถูกจับได้แม่นยำยิ่งขึ้น ในเธรด LtU ดังกล่าวสามารถพบการอ้างอิงสอง ถึงงานที่มีอยู่ตามบรรทัดที่คล้ายกัน
ทั้งตรรกะเชิงผสมของSchönfinkelและ calcul-แคลคูลัสของคริสตจักรนั้นได้ถูกคิดค้นขึ้นในตอนแรกว่าเป็นนามธรรมที่กลั่นจากการให้เหตุผลเชิงตรรกะและด้วยเหตุนี้โครงสร้างของพวกเขาจึงจับคู่กับเหตุผลเชิงตรรกะ พวกเขายังมีข้อสันนิษฐานของการขยายเช่นอธิบายไว้โดยกฎการลด - กทพ.: λx. f x
ที่ไหนx
ไม่เกิดขึ้นf
เทียบเท่ากับเพียงf
คนเดียว
ในทางปฏิบัติความคิดที่เข้มงวดมากของการขยายอาจ จำกัด เกินไปในขณะที่ความตั้งใจที่ไม่ จำกัด ทำให้เหตุผลในท้องถิ่นเกี่ยวกับการแสดงออกย่อยยากหรือเป็นไปไม่ได้
SF-แคลคูลัสเป็นแคลคูลัสแก้ไขที่จัดทำขึ้นเพื่อเป็นการดำเนินการดั้งเดิมรูปแบบที่ จำกัด ของการวิเคราะห์เชิงมิติ: ความสามารถในการแยกแยะนิพจน์ที่นำไปใช้บางส่วน แต่ไม่ใช่ค่าดั้งเดิมหรือนิพจน์ที่ไม่ได้ทำให้เป็นมาตรฐาน สิ่งนี้เกิดขึ้นกับแผนที่อย่างชัดเจนเกี่ยวกับแนวคิดเช่นการจับคู่รูปแบบตามที่พบในภาษาการเขียนโปรแกรมสไตล์ ML หรือมาโครที่พบใน Lisps แต่ไม่สามารถอธิบายได้ใน SK- หรือ calcul-แคลคูลัสโดยไม่ใช้งานได้อย่างมีประสิทธิภาพ
ดังนั้นโดยสรุป: SF-แคลคูลัสไม่สามารถแสดงโดยตรงใน calcul-แคลคูลัสในแง่ที่ว่าการแสดงที่ดีที่สุดที่เป็นไปได้มากที่สุดเกี่ยวข้องกับการใช้งานล่าม SF-แคลคูลัสและเหตุผลสำหรับสิ่งนี้คือความแตกต่างทางตรรกพื้นฐาน: โครงสร้างหรือพวกเขาถูกกำหนดอย่างหมดจดโดยพฤติกรรมภายนอกของพวกเขา?
แคลคูลัส SF ของ Barry Jay สามารถมองเห็นโครงสร้างของคำศัพท์ที่ใช้กับซึ่งไม่สามารถใช้งานได้ แลมบ์ดาแคลคูลัสและตรรกะเชิงการรวมแบบดั้งเดิมนั้นใช้งานได้อย่างหมดจดดังนั้นจึงไม่สามารถทำได้
แลมบ์ดาแคลคูลัสมีส่วนขยายจำนวนมากที่ทำสิ่งที่ละเมิดความบริสุทธิ์ส่วนใหญ่ต้องการแก้ไขกลยุทธ์การเขียนใหม่ในระดับหนึ่งเช่นการเพิ่มสถานะการควบคุม (เช่นผ่านการต่อเนื่อง) หรือตัวแปรเชิงตรรกะ