subr ... sub?

subr - преобразует функцию Lisp, которая ранее была преобразована с помощью expr * обратно в функцию SUBR.
sub? - возвращает any2
, когда строковое представление any1
является подстрокой строкового представления any2
.
https://picolisp.tiddlyhost.com/#sub
Долго искал в документации, что может значить “функция SUBR“. На просторах сети есть subr.c, но это явно не то. В одном месте туториала можно увидеть в контексте трейсинга такую цитату: “trace
works by modifying the function body, so generally it works only for functions defined as lists (lambda expressions, see Evaluation). Tracing a built-in function (SUBR) is possible, however, when it is a function that evaluates all its arguments.“ То есть, это либо встроенная функция, либо процесс трассировки встроенной функции, скорее, просто “built-in function”.
В любом случае, как видим, обе акцентированные функции не связаны между собой. Но тем более их уместно продемонстрировать вместе и те потенциальные недоумения, которые могут возникнуть при знакомстве с этими “символами”.
Поэтому обязательно пример с использованием subr:
: car
-> 67313448
: (expr 'car)
-> (@ (pass $385260187))
: (subr 'car)
-> 67313448
: car
-> 67313448
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
Всегда чему-то учусь!