Iota是一種僅使用一個combinator的可編程的小型「編程語言」。我有興趣瞭解它的工作原理,但以我熟悉的語言查看實現會很有幫助。在Haskell中實現Iota
我發現在Scheme中編寫的Iota編程語言的實現。儘管我把它翻譯成Haskell有點麻煩。這很簡單,但我對Haskell和Scheme都比較陌生。
你會如何在Haskell中編寫等效的Iota實現?
(let iota()
(if (eq? #\* (read-char)) ((iota)(iota))
(lambda (c) ((c (lambda (x) (lambda (y) (lambda (z) ((x z)(y z))))))
(lambda (x) (lambda (y) x))))))
Haskell中沒有等效的實現。這樣的實現不會檢查。當然可以使用不同的策略編寫實現。 – 2012-08-14 22:01:35
是的,我知道它不會打字檢查。我想我被絆倒的部分是理解((iota)(iota))在這個實現中正在做什麼。 – 2012-08-14 23:11:19