2015-10-08 6 views
2

я могу показаться, чтобы выяснить, почему следующая команда выводит следующее+ Vector Common Lisp

(vector + 1 2) 
(vector + 1 2) 
=> #((VECTOR + 1 2) 1 2) 

Где я установка я +?

ответ

8

Вы не устанавливая его, REPL устанавливает следующую переменную после оценки каждой формы вы даете ему:

  • + - последняя форма
  • - - текущая форма
  • / - последняя форма значения в виде списка
  • * - первичное значение последней формы в ((car /))

Это несколько похоже на history facility of most modern Unix shells.

PS. Важным аспектом вашей проблемы является то, что Common Lisp is Lisp-2, поэтому the symbol + names both a variable and a function.

+0

Просьба уточнить. Почему установлен и когда? Или это ошибка? – William

+0

Нет, не особо. Зачем? Я не могу придумать что-то подобное в unix. – William

+0

Подождите ... так что это похоже на историю, если вы не возражаете добавить приложение для каждого. – William