Tôi biết rằng:Làm thế nào để viết một danh sách trống bằng cách sử dụng S, K và tôi combinators?
(cons [p] [q]) is ((s ((s i) (k [p]))) (k [q]))
(car [lst]) is ([lst] k)
(cdr [lst]) is ([lst] (k i))
Tôi muốn viết một danh sách như thế này
(cons [a] (cons [b] (cons [c] [nil])))
, đó sẽ là một cái gì đó như thế này:
((s ((s i) (k [a]))) (k ((s ((s i) (k [b]))) (k ((s ((s i) (k [c]))) (k [nil]))))))
Nhưng tôi không biết cách biên dịch 'nil' thành S, K và I combinators. Có ai biết không?
Cảm ơn trước, Edwin Jose Palathinkal
Bạn có thể muốn xem xét điều này: http://www.cs.bath.ac.uk/~ gam23/teaching/ProgrammingIII/10lambdaprogramming.pdf – Pinochle