Недавно я столкнулся с этой строкой в некотором общем коде библиотеки LISP:
(string-equal #1="http://" url :end2 (min (length url) #2=#.(length #1#)))
Здесь url
передается как строковая переменная. Я понимаю, что цель этого сравнения состоит в том, чтобы определить, начинается ли строка url
с http://
, и это сравнение без учета регистра. Я также понимаю ключи string-equal
, такие как :start
и :end
. Но знак фунта (#
) пунктов бросил меня. Я могу понять большую часть этого контекста, но я не нашел документацию о том, как это работает, и я по-прежнему немного озадачен тем, что действительно означает #2=#.(length #1#)
. Это выглядит немного мистически для меня.
Может ли кто-нибудь объяснить, как работает механизм знака фунта в этом конкретном контексте и если он универсально используется в других конструкциях таким же образом? Или укажите мне документ/веб-сайт, который его описывает.
Спасибо!