Skip to main content

Command Palette

Search for a command to run...

allowed

Updated
1 min read
S

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

*Allow - глобальная переменная, содержащая разрешенные шаблоны доступа. Если ее значение не равно NIL, она должна содержать список, где CAR — это дерево idx разрешенных элементов, а CDR — список префиксных строк.

: *Allow
-> (("!start" ("!psh") "!stop" NIL "lib.css") "app/")
: (allow "!myFoo")  # additionally allowed item
-> "!myFoo"
: (allow "myDir/" T)  # additionally allowed prefix
-> "myDir/"

allow - поддерживает структуру индекса разрешенных шаблонов доступа в глобальной переменной *Allow. Если значение *Allow не равно NIL, sym добавляется в дерево idx в CAR *Allow (если flgNIL) или в список префиксных строк (если flg — не NIL).

(allow 'sym ['flg]) -> sym

: *Allow
-> (("!start" ("!psh") "!stop" NIL "lib.css") "app/")
: (allow "!myFoo")  # additionally allowed item
-> "!myFoo"
: (allow "myDir/" T)  # additionally allowed prefix
-> "myDir/"

allowed - создает структуру индекса разрешенных шаблонов доступа в глобальной переменной *Allow. lst должен состоять из префиксных строк (для проверки во время выполнения с помощью pre?), а аргументы sym должны указывать изначально разрешенные элементы.

(allowed lst [sym ..])

: (allowed ("app/")  # allowed prefixes
   "!start" "!stop" "lib.css" "!psh" )  # allowed items
-> NIL

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

More from this blog

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

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

Jul 15, 20257 min read
A

abrakadabra

195 posts

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