แคลคูลัสλคืออะไร?


11

ฉันมีสิ่งที่ฉันจะเรียกคำถามปรัชญาเกี่ยวกับ 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 ไม่เพียง แต่กำหนดฟังก์ชันที่ทำ แต่ยังเป็นข้อมูลที่ฟังก์ชันใช้งาน ดังนั้นเมื่อคุณเขียนA Bคุณไม่สามารถใช้AการBได้ แต่คุณใช้ฟังก์ชั่นการอธิบายโดยสตริงAนิยามอย่างเป็นทางการของฟังก์ชั่นที่มีอยู่ในBการกลับมาอีกหมายอย่างเป็นทางการ

เกิดอะไรขึ้นใน calcul-แคลคูลัส? วัตถุทางคณิตศาสตร์ที่เกี่ยวข้องกับมันคืออะไร?


ติดตาม:

ตกลงจากคำตอบด้านล่างดูเหมือนว่า calcul-แคลคูลัสไม่ได้เกี่ยวกับฟังก์ชั่นทางคณิตศาสตร์มากนัก แต่เกี่ยวกับเซตย่อยของฟังก์ชั่นที่สามารถแสดงเป็น expressed นิพจน์ได้ หรือมากยิ่งขึ้นเกี่ยวกับการจัดการการแสดงออกλ


2
คุณสามารถเรียบเรียงคำถามสุดท้ายอีกครั้งเพื่อให้มีความคิดเห็นที่มุ่งเน้นน้อยลงหรือไม่? ควรมีคำตอบที่ไม่แข็งกระด้างสำหรับเรื่องนี้
Telastyn

จากการศึกษาของฉัน calcul-แคลคูลัสมีเพียงเพื่อทำให้สมองของฉันเจ็บ ฉันยังไม่แน่ใจว่าฉันทำผ่านคลาสนั้นได้อย่างไร

คำตอบ:


9

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

ตัวอย่างเช่นในการคำนวณฟังก์ชั่นn = f(i)จากธรรมชาติสู่ธรรมชาติคุณให้การเข้ารหัสคริสตจักรของiเป็นพารามิเตอร์ให้กับฟังก์ชั่นแคลคูลัสแลมบ์ดาของคุณใช้กฎการลดจนกว่าคุณจะหยุดและตรวจสอบคำที่เกิดขึ้น หากตรงกับโครงสร้างของเลขคริสตจักรให้แยกจำนวนnที่เข้ารหัส นั่นคือผลลัพธ์ของคุณ iหากระยะเวลาที่เกิดขึ้นไม่ได้มีลักษณะเหมือนตัวเลขคริสตจักรหรือลดลงไม่หยุดฟังก์ชั่นที่จะไม่ได้กำหนด

คำศัพท์ดึงหน้าที่สองอย่างอย่างมีประสิทธิภาพเป็น "รหัส" และ "ข้อมูล" ไม่มีอะไรพิเศษ: เทปของเครื่องทัวริง (สตริงเหนือตัวอักษรบางตัว) อาจเป็น --- และบ่อยครั้งที่ถูกตีความว่าเป็นการเข้ารหัสของเครื่องทัวริงหรือในบางแง่มุม เช่นเดียวกันบิตในหน่วยความจำหลักของเครื่อง von Neumann สามารถเป็นได้ทั้งการเข้ารหัสของโปรแกรมหรือการเข้ารหัสอย่างอื่น หรือแม้แต่ทั้งคู่ในคราวเดียว เป็นเพียง "มุมมองเริ่มต้น" ที่แตกต่าง


การแสดงออกของผลลัพธ์ของการคำนวณที่เกี่ยวข้องกับตัวเลขของศาสนจักรจะแก้ไขให้อยู่ในรูปแบบบัญญัติเช่น (λfx.f (f (fx))) หรือไม่ หรือคุณสามารถรับการแสดงออกที่แตกต่างกันของตัวเลขเดียวกันได้หรือไม่
Florian F

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