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