Re: Как работает funcall в Лиспе?
От: dsorokin Россия  
Дата: 05.07.24 17:31
Оценка:
Здравствуйте, Worminator X, Вы писали:

---

Схема — это Lisp-1. Common Lisp — это Lisp-N, т.е. буквально много пространств имен. Функции и переменные в разных пространствах имен.

В начале формы ищет название функции из пространства имен функций, а у вас, вообще, ячейка сons! Отсюда у вас недопонимание с компилятором.

Зачем это нужно? Сильно упрощает проверку кода при компиляции для динамического языка. Язык не статический, а именно динамический. Такая штука в итоге помогает создавать приложения с большим объемом кода, т.е. позволяет снизить сложность программирования.

По Common Lisp есть хороший учебник: Практическое использование Common Lisp

А что касается укороченной формы "((lambda ...) arg)", то это небольшое отступление от общих правил, упрощение, да и просто архаизм, хотя лично мне нравится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.