run и *Run

run - если применяется к атому, run ведет себя как eval, а если к списку, то он оценивается последовательно и возвращается последний результат. Если задано смещение cnt
, значение @ в среде вызова cnt
'th используется во время этой оценки. cnt
должно быть больше нуля.
*Run - глобальная переменная, которая может содержать список выражений prg
, которые используются во время key, sync, wait и listen. Первый элемент каждого выражения должен быть либо положительным числом (таким образом, обозначая дескриптор файла для ожидания), либо отрицательным числом (обозначая значение тайм-аута в миллисекундах (в этом случае должно следовать другое число для хранения оставшегося времени)). Системный вызов poll(2)
выполняется с этими значениями, и соответствующее тело prg
выполняется, когда доступны входные данные или когда произошло тайм-аут (при этом @
установлено на дескриптор файла или значение тайм-аута).
https://picolisp.tiddlyhost.com/#run
Тот случай, когда вроде все очевидно, но есть нюансы, чтобы понять которые, нужна демонстрация и не одна. Так что надо внимательно смотреть примеры использования.
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
Всегда чему-то учусь!