Описание тега lisp-2
Lisp-2 относится к Lisp-подобным языкам с двумя разными пространствами имен для переменных и имен функций.
3
ответа
Эмулировать вызываемые объекты в стиле Clojure в Common Lisp
В Clojure реализованы хеш-карты и векторы invoke, так что они могут быть использованы в качестве функций, например, (let [dict {:species "Ursus horribilis" :ornery :true :diet "You"}] (dict :diet)) lein> "You" или, для векторов, (let [v [42 613 2…
17 янв '15 в 03:15
4
ответа
Использование лямбда-значения из функции в качестве первого элемента списка
Я читаю "Парадигмы программирования искусственного интеллекта" Питера Норвига и столкнулся с проблемой, которую не могу решить самостоятельно (это мое введение в Лисп). На самом деле проблема довольно маленькая, но, очевидно, не та, которую мой мале…
01 май '11 в 18:52
3
ответа
В чем разница между Лисп-1 и Лисп-2?
Я пытался понять разницу между Lisp-1 и Lisp-2 и как это связано с Clojure, но я все еще не понимаю должным образом. Кто-нибудь может просветить меня?
02 янв '11 в 13:30
6
ответов
Отдельные пространства имен для функций и переменных в Common Lisp и Scheme
Схема использует единое пространство имен для всех переменных, независимо от того, связаны ли они с функциями или другими типами значений. Common Lisp разделяет их так, что идентификатор "hello" может ссылаться на функцию в одном контексте и строку …
20 июн '09 в 04:51
1
ответ
Является ли "Лисп-1 против Лисп-2" актуальным в языке со статическими типами?
(Это вопрос типа теории CS; я надеюсь, что это приемлемо.) Дискуссия " Lisp-1 против Lisp-2" касается того, должно ли пространство имен функций отличаться от пространства имен всех других переменных, и это актуально в динамически типизированных язык…
30 окт '13 в 05:06
0
ответов
Почему не работает с лямбда в Common Lisp?
Я пишу интерпретатор LISP (в C), и я нахожусь на стадии реализации лямбда-функций и set языковые особенности. В моем переводчике следующие работы: (set 'f (lambda (x) (cdr x))) (f '(a b c)) Выведение (b c), Тем не менее, по-видимому, такие вещи не р…
05 ноя '17 в 21:59
3
ответа
Как сохранить функцию в переменной в Лиспе и использовать ее
Я хочу сохранить функцию как print в переменной, так что я могу просто напечатать что-то короткое, как pНапример:В Scheme: (define print display) (print "Hello world\n") ;; alternate way (define print 'display) ((eval print) "Hello world\n") Тот же …
15 окт '13 в 07:14
2
ответа
В схеме или STk функция будет показана как процедура или замыкание, но почему LISP дает ошибку?
В Ubuntu, если я запустил MIT-Scheme, он покажет функцию как процедуру: 1 ]=> (define (sq x) (* x x)) ;Value: sq 1 ]=> (sq 3) ;Value: 9 1 ]=> sq ;Value 11: #[compound-procedure 11 sq] а Беркли STk покажет sq в качестве закрытия: STk> (de…
13 дек '15 в 19:11
4
ответа
Общий Лисп а Лисп-н?
Мне известно, что в Common Lisp существуют разные среды привязки для функций и переменных, но я считаю, что у него также есть другая среда привязки для меток tagbody. Существуют ли еще более обязательные условия, чем эта? Если так, то справедливо ли…
09 авг '12 в 04:27
2
ответа
Common Lisp, "определенный, но никогда не используемый"
Эта функция компилируется с предупреждениями, fn определен и никогда не используется в первой строке, а fn является неопределенной функцией во второй строке: (defun test-function (fn) (funcall #'fn)) Зачем? Общее объяснение или ссылка на него было б…
25 сен '16 в 20:33
2
ответа
Глупо ли делать александрию: карри не обязательно использует funcall?
В настоящее время функция карри с Александрией curry должен быть вызван с funcall, Однако можно установить новую функцию symbol-function так что мы можем обойтись без него и относиться к нему как к реальной функции. Иллюстрировано на https://lispcoo…
24 авг '17 в 13:01
1
ответ
Вызов списка функций в Common Lisp
В Clojure я могу определить последовательность функций, а затем вызвать их, как если бы они были любым другим значением, например: (doseq [op [+ - * /]] (println (op 1 2 3 4))) который производит следующий вывод: 10 -8 24 1/24 nil Попытка сделать то…
03 окт '14 в 16:26
4
ответа
Почему я должен вызывать функцию, возвращенную из другой?
Почему это не работает? ( ((lambda () (lambda (x) (funcall #'1+ x)))) 2) ; yields Compile-time error: illegal function call Я столкнулся с такой ситуацией, и позже оказалось, что funcall исправляет это, т.е. (funcall ((lambda () (lambda (x) (funcall…
02 май '16 в 09:02
1
ответ
Common Lisp Lisp-1 macro
Я пытаюсь эмулировать единое пространство имен схемы внутри общего lisp с помощью макроса (основанного на Дуге Хойте), который расширяется до лямбды, где каждое использование f! символ (похож на Дуга Хойта o! а также g! символы) в позиции функции ра…
14 янв '15 в 20:37
3
ответа
У каких-нибудь лиспов в голове есть s-выражение, например ((f 2) 3 4)? Если нет, то почему?
Поддерживают ли лиспы вложенные s-выражения на голове? Например ((f 2) 3 4) для которого (f 2) предположительно оценивает функцию / макрос для применения на 3 4, Возможно ли иметь шепот, поддерживающий такую вещь? Или есть технические ограничения,…
16 окт '12 в 03:04
3
ответа
Может ли Emacs Lisp назначить лямбда-форму такой переменной, как Scheme?
Изучая ячейки символов Emacs Lisp, я обнаружил, что для примера функции вроде (defun a (&rest x) x) я могу позвонить (symbol-function 'a), который возвращает (lambda (&rest x) x). Я могу использовать его, если захочу > ((lambda (&rest…
13 фев '20 в 07:43
2
ответа
Почему mapcar в lisp берет имя, а не функцию?
Я просматриваю книгу lisp и смотрю на , мой вопрос в том, почему это действительно: > (mapcar #'+ '(1 2) '(3 4)) а вот этого нет: (mapcar + '(1 2) '(3 4)) другими словами, есть ли причина, по которой в шепелявости было решено, что первый аргумент…
03 янв '21 в 08:21