Size: a a a

2020 October 26

SA

Sokolov Andrew in Lisp Forever
для 0
источник

BB

Bird Bird in Lisp Forever
Я думал нечто вроде copy-list исправляет это проблему присваивания.
источник

SA

Sokolov Andrew in Lisp Forever
ничего не устраняет
источник

SA

Sokolov Andrew in Lisp Forever
аргументы передаются по
источник

SA

Sokolov Andrew in Lisp Forever
типа
источник

SA

Sokolov Andrew in Lisp Forever
копии ссылки
источник

a

akater in Lisp Forever
Bird Bird
Тук-тук. Это опять я.

Ваша функция:
>? (defmacro super-quote (arg) `(quote ,arg))

А это примерно то что мне нужно:
>? (defun set-new (new-arg val) (setq (super-quote new-arg) val))

Но:
>? (set-new НАШЛОСЬ 1)

> ...выдаёт ошибку о том что НАШЛОСЬ не имеет значения

Хотя в new-arg "НАШЛОСЬ" уже подставлено, и я ожидал что можно будет:

>? НАШЛОСЬ
> 1

Я написал через setq потому что setf не заработал, выдало ошибку вроде "...error (setf quote)... . Раньше тоже помню что setf не работал в этом случае. Но зато кажется обычный set работал. Причём вроде начиналось как-то так:

(set '(super-quote ...

Ещё вроде был eval, кажется два, вот так как-то:
(eval (quote (eval...
Между ними был наверное quote. Странно было что при одном eval-е оно не работало, а с повтором заработало, хотя
(eval (quote...
кажется можно долго повторять.
(setq (super-quote new-arg) val) это ошибочно.  setq действует на символах.
источник

BB

Bird Bird in Lisp Forever
Ну так может что-то можно натворить с keyword-ами, хотя я уже забыл как ими пользоваться. Вроде кейворд доступен отовсюду. Я ещё пробовал как-то через (make-symbol, но оно возвращало #:название-символа, и я не понял как дальше работать. Вроде как-то uninterned.. но я не разобрался.
источник

SA

Sokolov Andrew in Lisp Forever
символы доступны отовсюду
источник

SA

Sokolov Andrew in Lisp Forever
это вообще ни при чем
источник

BB

Bird Bird in Lisp Forever
Ну там оно всё равно же как-то на лямбды раскладывается изнутри. И всё это просто атом в списках. неужели нелья как-то перетасовать атомы, и подставить один под аргумент как мне надо.
источник

BB

Bird Bird in Lisp Forever
"атомы", не "атом"
источник

VM

Vyacheslav Mikushev in Lisp Forever
Bird Bird
Тук-тук. Это опять я.

Ваша функция:
>? (defmacro super-quote (arg) `(quote ,arg))

А это примерно то что мне нужно:
>? (defun set-new (new-arg val) (setq (super-quote new-arg) val))

Но:
>? (set-new НАШЛОСЬ 1)

> ...выдаёт ошибку о том что НАШЛОСЬ не имеет значения

Хотя в new-arg "НАШЛОСЬ" уже подставлено, и я ожидал что можно будет:

>? НАШЛОСЬ
> 1

Я написал через setq потому что setf не заработал, выдало ошибку вроде "...error (setf quote)... . Раньше тоже помню что setf не работал в этом случае. Но зато кажется обычный set работал. Причём вроде начиналось как-то так:

(set '(super-quote ...

Ещё вроде был eval, кажется два, вот так как-то:
(eval (quote (eval...
Между ними был наверное quote. Странно было что при одном eval-е оно не работало, а с повтором заработало, хотя
(eval (quote...
кажется можно долго повторять.
(defmacro set-new (new-arg val) `(setf ,new-arg ,val)) Но в этом мало смысла.
источник

SA

Sokolov Andrew in Lisp Forever
ни на какие лямбды оно не
источник

SA

Sokolov Andrew in Lisp Forever
раскладывается
источник

SA

Sokolov Andrew in Lisp Forever
ну иногда мб
источник

SA

Sokolov Andrew in Lisp Forever
чето такое происходит
источник

BB

Bird Bird in Lisp Forever
Вроде даже сам eval не МакКартни придумал, и тоже был удивляён что это мини-интерпертатор.
источник

SA

Sokolov Andrew in Lisp Forever
ладно стоп на самом деле
источник

SA

Sokolov Andrew in Lisp Forever
ой зря я это прочитал ща
источник