Skip to main content

Command Palette

Search for a command to run...

extern и intern

Updated
1 min read
S

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

Пришла очередь акцентировать in , но что уже случилось два раза, прямо в контексте out - in, а также в контексте input, а insert акцентировался в рамках as ... soc ... sert и asoq. С другой стороны, не уверен, что существует, как самостоятельная, лексема “tern”, хотя это может быть как редукция от “terra” (территория или террариум) и известны такие прецеденты, как “через тернии к звездам“ и “тернарный“ (тройной). Так, что вот такой компромисс.

extern - создает или находит внешний символ. Если символ с именем sym уже является extern, он возвращается. В противном случае возвращается новый внешний символ. NIL возвращается, если sym не существует в базе данных.

(extern 'sym) -> sym | NIL

: (extern "A1b")
-> {A1b}
: (extern "{A1b}")
-> {A1b}

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

intern - создает или находит внутренний символ. Если символ с именем any уже является intern, он возвращается. В противном случае any интернируется в текущее пространство имен и возвращается. Если nsp не является NIL, any всегда интернируется в текущее пространство имен (если nsp является T) или в заданное пространство имен, даже если он найден в других пространствах имен.

(intern 'any ['nsp]) -> sym

: (intern "abc")
-> abc
: (intern 'car)
-> car
: ((intern "car") (1 2 3))
-> 1
: ((intern '("c" "a" "r")) (1 2 3))
-> 1

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

More from this blog

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

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

Jul 15, 20257 min read
A

abrakadabra

195 posts

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