คำถามติดแท็ก lambda-calculus

2
แคลคูลัสแลมบ์ดากับภาษาการเขียนโปรแกรมมีความสัมพันธ์กันอย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันเริ่มปีแรกของฉัน (ในวิทยาลัย) ในวิทยาการคอมพิวเตอร์ในปีหน้าและฉันเขียนส่วนใหญ่ใน C (ถ้าเป็นเรื่อง) ฉันได้ลองค้นหาแล้ว แต่สิ่งที่ฉันพบส่วนใหญ่ถือว่ามีความรู้เกี่ยวกับแลมบ์ดาแคลคูลัส ทำไมแคลคูลัสแลมบ์ดาจึงถูกพิจารณาว่ามีประโยชน์มากกว่าแคลคูลัสแบบแปรผันเพียงตัวเดียวในการเริ่มโปรแกรม มีความสัมพันธ์ระหว่างการแสดงออกแลมบ์ดากับโปรแกรมการทำงานหรือไม่? มันเป็นงานของ Alonzo Church ในแลมบ์ดาแคลคูลัสที่มีอิทธิพลต่อการพัฒนาภาษาการเขียนโปรแกรมหรือไม่? ทุกคนที่อยู่นอกโรงเรียนยังคงคึกคักเกี่ยวกับเรื่องนี้และฉันก็ไม่รู้เลยว่าพวกเขาจะพูดถึงอะไรถึงแม้ว่าฉันกระตือรือร้นที่จะเรียนรู้และดูว่ามันเกี่ยวข้องโดยตรงกับการเขียนโปรแกรมและความเข้าใจภาษาโปรแกรมของฉันอย่างไร

1
แคลคูลัสλคืออะไร?
ฉันมีสิ่งที่ฉันจะเรียกคำถามปรัชญาเกี่ยวกับ calcul-แคลคูลัส เมื่อคุณสำรวจ calcul-แคลคูลัสคุณจะประหลาดใจเมื่อเห็นทุกสิ่งที่คุณทำได้ คุณสามารถกำหนดจำนวนเต็มการดำเนินการทางคณิตศาสตร์บูลีนคำสั่ง if-then-else ลูปฟังก์ชั่นวนซ้ำ ฯลฯ ฉันเชื่อว่ามันได้รับการพิสูจน์แล้วว่าคำนวณเสร็จสมบูรณ์ แต่ในอีกด้านหนึ่งถ้าคุณพิจารณาว่าคุณสามารถทำอะไรกับฟังก์ชั่นใน calcul-แคลคูลัสได้คุณจะรู้ว่าสิ่งเดียวที่คุณทำได้คือการให้อาหารมันฟังก์ชั่นและมันจะส่งกลับฟังก์ชันอื่น และกระบวนการนั้นไม่สิ้นสุด ดังนั้นคุณจะแยกผลลัพธ์จากการคำนวณได้อย่างไร fสมมติว่าผลที่ตามมาของการแสดงออกเป็นฟังก์ชั่น คุณต้องการตรวจสอบว่าfเป็นสิ่งที่คุณคาดหวังหรือไม่ คุณสามารถทดสอบได้ใช้ฟังก์ชั่นที่คุณรู้จักใช้มันและได้รับf gแต่การตรวจสอบgนั้นถูกต้องตอนนี้คุณต้องตรวจสอบสิ่งที่gทำ และคุณเริ่มต้นใหม่ทั้งหมด ดังนั้นวิธีที่คุณสามารถบอกอะไรเกี่ยวกับf? ฉันคิดว่าคุณสามารถแทนที่ฟังก์ชั่นทั้งหมดใน us-แคลคูลัสด้วยฟังก์ชั่นเดียว, ฟังก์ชั่นเอกลักษณ์I = λx.xและทุกอย่างยังคงทำงานตามที่อธิบายไว้ในλ-แคลคูลัส คริสตจักรตัวเลข3เมื่อได้รับfและผลตอบแทนx f(f(f(x)))แต่เนื่องจากfและxจะไม่สามารถจะส่งกลับ I นำไปใช้และยังให้ผลตอบแทน ดังนั้นตอบสนองความหมายของ “การบูลีน” และความต้องการ 2 ข้อโต้แย้งซึ่งจะเป็นและเพื่อให้ทั้งสอง booleans จะกลับมา แต่ละคนจะเทียบเท่ากับตัวตนแม้ว่าพวกเขาจะปฏิบัติตามคำจำกัดความของพวกเขาIIIIII3(λxy.x)(λxy.y)III ดังนั้นคุณจะสร้างความแตกต่างได้อย่างไร คุณแสดงให้เห็นว่า calcul-แคลคูลัสเกี่ยวข้องกับฟังก์ชันมากกว่าฟังก์ชันเดียวได้อย่างไร มีแนวคิดของตัวตนหรือไม่? คุณสามารถระบุฟังก์ชันได้ทันทีโดยไม่ทำการประเมินหรือไม่? ฉันเชื่อว่าได้รับการพิสูจน์แล้วว่าไม่มีวิธีทดสอบ 2 ฟังก์ชั่นเพื่อความเท่าเทียมกัน หรือ calcul-แคลคูลัสไม่เกี่ยวกับฟังก์ชั่น แต่เกี่ยวกับคำอธิบายอย่างเป็นทางการของสิ่งที่พวกเขาทำ? นั่นหมายถึงว่านิพจน์ not ไม่เพียง …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.