Skip to main content

Command Palette

Search for a command to run...

adr и *Adr

Published
1 min read
S

Всегда чему-то учусь!

adr - преобразует в первой форме переменную var (символ или cons-пару) в num (фактически закодированный указатель). Этот указатель можно передать в native или struct. Вторая форма преобразует указатель обратно в исходную var. Обратите внимание, что эта исходная var может быть удалена сборщиком мусора, если на нее не ссылаются из других данных, что приводит к непредсказуемым результатам.

(adr 'var) -> num

(adr 'num) -> var

: (setq X (box 7))
-> $370237372176
: (adr X)
-> 533244889064
: (adr @)
-> $370237372176
: (val @)
-> 7
: (struct (adr X) 'N)
-> 114
$: (struct (adr X) T)
-> 7

*Adr - глобальная переменная, содержащая IP-адрес последнего недавно принятого клиента.

: *Adr
-> "127.0.0.1"

https://picolisp.tiddlyhost.com/#adr

More from this blog

Нетривиальный Repl

Это плавный переход от eval к loop к циклам и где уместно вспомнить, что эта тема уже затрагивалась в контексте самой часто употребляемой функции for и рекурсии. Repl как функция не анонсирована в документации, но есть авторская классификация в файла...

Jul 15, 20257 min read
A

abrakadabra

195 posts

Метамоделирование как интеграция философии, лингвистики и математики на базе информатики. Анализ теорий и практик программирования. Прецеденты оптимизации.