LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Так cons сами лишние при таком подходе, есть же замыкания, вот пример из Wikipedia, реализация cons через функции, на CL и других лиспах тоже можно повторить.

(define (cons x y)
  (lambda (m) (m x y)))

(define (car z)
  (z (lambda (p q) p)))

(define (cdr z)
  (z (lambda (p q) q)))

И даже в первом лиспе уже были массивы! Потому что нельзя терпеть cons даже в языке-эксперименте, а могли бы вообще от них избавиться.

Исправление MOPKOBKA, :

Так cons сами лишние при таком подходе, есть же замыкания, вот пример из Wikipedia, реализация cons через функции, на CL и других лиспах тоже можно повторить.

(define (cons x y)
  (lambda (m) (m x y)))

(define (car z)
  (z (lambda (p q) p)))

(define (cdr z)
  (z (lambda (p q) q)))

Исходная версия MOPKOBKA, :

Так cons сами лишние при таком подходе, есть же замыкания, вот пример из Wikipedia:

(define (cons x y)
  (lambda (m) (m x y)))

(define (car z)
  (z (lambda (p q) p)))

(define (cdr z)
  (z (lambda (p q) q)))