extern и intern

Sergey ShishkinSergey Shishkin
1 min read

Пришла очередь акцентировать 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

0
Subscribe to my newsletter

Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sergey Shishkin
Sergey Shishkin

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