以前读 SICP,虽然很有趣,但并没有讲cons、car与cdr是怎样实现的。今天读 the implementation of functional programming languages ,里面讲到了如何用lambda实现这三个函数,这里给出用 javascript 和 scheme 改写的版本。
Javascript
var cons = (a, b) => f => f(a, b)
var car = c => c((a, b) => a)
var cdr = c => c((a, b) => b
Scheme
(define (cons a b)
(lambda (f) (