มีแคลคูลัส SKI ที่พิมพ์หรือไม่


26

ส่วนมากของเรารู้ว่าการติดต่อระหว่างcombinatory ตรรกศาสตร์และแลมบ์ดาแคลคูลัส แต่ฉันไม่เคยเห็น (บางทีฉันไม่ได้ดูลึกพอ) เทียบเท่ากับ "combinators ที่พิมพ์" ซึ่งสอดคล้องกับแคลคูลัสแลมบ์ดาที่พิมพ์ได้ง่าย สิ่งนั้นมีอยู่จริงหรือไม่? เราจะหาข้อมูลเกี่ยวกับมันได้จากที่ไหน?


คุณอาจจะสนใจในการอ่าน Monad และนามธรรมกำจัดในMonad.Reader, ฉบับที่ 17 Monad ของ Reader (หรือแม่นยำมากขึ้นของ functor ประยุกต์) เกี่ยวข้องอย่างใกล้ชิดกับ SKI พิมพ์
— Petr Pudlák

คำตอบ:


18

ความสมบูรณ์ที่แสดงออกของ combinators ที่พิมพ์เมื่อเทียบกับแคลคูลัสแลมบ์ดาที่พิมพ์ออกมาได้ถูกแสดงให้เห็นแล้ว สำหรับผู้รวบรวมที่ไม่มีการพิมพ์แต่ละคนต้องการผู้รวบรวมที่พิมพ์ทุกคนในครอบครัว ตัวอย่างเช่นหนึ่งมี

  • Iα→α
  • Kα→(β→α)
  • Sα→(β→γ)→(α→β→(α→γ))

สำหรับชุดค่าผสมประเภทและทั้งหมดα,βγ

อีกวิธีหนึ่งก็คิดว่าประเภทเป็นรูปแบบประเภท (หรือประเภท polymorphic) และใส่ไว้ใน Haskell และ voila: combinators


ฉันไม่เคยคิดว่าทำหน้าที่เป็น Monad! เป็นอย่างนั้นเหรอ? S
— Hugo Sereno Ferreira

อันที่จริงผมได้รับการชี้ให้เห็นว่าสอดคล้องกับการดำเนินการของ applicative Functors และ{K} KS<*>pureK
— Hugo Sereno Ferreira

SพีΛ X α → XSค่อนข้างพื้นฐานดังนั้นจึงสามารถสอดคล้องกับหลายสิ่ง มีประเภทเดียวกับฟังก์ชั่น monadสำหรับ functorX SapΛX.α→X
— Dave Clarke
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.