LINUX.ORG.RU

Отличия EmacsLisp и CommonLisp


0

0

Скажите, сильно-ли различаются ELisp и CLisp? Пока нету компилятора Common-а, примеры выполняю в Emacs, и там в тексте вида

(defun 2func (x)

(function (lambda () x)))

(setq func (2func 6))

(funcall func)

(демонстрация lexical closure) интертрепатор ругается на последнюю строчку, мол,

debug(error (void-variable x))

(lambda nil x)()

funcall((lambda nil x))

eval((funcall func))

eval-last-sexp-1(nil)

eval-last-sexp(nil)

call-interactively(eval-last-sexp)

Вроде должно всё работать - а оно не хочет :-( Не пойму, в чём заморочка...

> Вроде должно всё работать - а оно не хочет :-( Не пойму, в чём заморочка...

Работать будет в CL, но не в Emacs Lisp, лучше возьми компилятор CL

Begemoth ★★★★★
()
Ответ на: комментарий от one_more_hokum

Вот closure в Elisp:

(require 'cl)

(defun f (x)
  (lexical-let ((x x))
    #'(lambda () x)))

stassats ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.