LINUX.ORG.RU

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

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

часто хочится сделать (apply and ...)

В newlisp такое возможно, по-моему:


(define sum (lambda(x y) (+ x y)))
(define-macro (sum2 x y) (+ x y))
(define lst '(1 2))
(print (apply sum lst)); -->3
(print (apply sum2 lst)); -->3
(print (apply and lst)); -->2

Но тут define-macro - это по-моему не макрос, а fexpr. Просто так называется. Также, ЕМНИП, picolisp и все старые лиспы до scheme. PS Ну да, забыл сказать, все эти ЯП интерпретируемые, видимо компиляция вводит эти ограничения и приходится трахаться с макрами.

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

часто хочится сделать (apply and ...)

В newlisp такое возможно, по-моему:


(define sum (lambda(x y) (+ x y)))
(define-macro (sum2 x y) (+ x y))
(define lst '(1 2))
(print (apply sum lst)); -->3
(print (apply sum2 lst)); -->3
(print (apply and lst)); -->2

Но тут define-macro - это по-моему не макрос, а fexpr. Просто так называется. Также, ЕМНИП, picolisp и все старые лиспы до scheme.