I recently encountered this line in some common LISP library code:
(string-equal #1="http://" url :end2 (min (length url) #2=#.(length #1#)))
Here, url
was passed in as a string variable. I understand the purpose of this comparison is to determine if the url
string starts with http://
and it's a case-insensitive compare. I also understand about string-equal
keys, such as :start
and :end
. But the pound sign (#
) items threw me. I can figure most of it out by context, but I haven't found documentation on how it works, and I'm still befuddled a bit by what #2=#.(length #1#)
really means. It looks a little mystical to me.
Could someone please explain how the pound sign mechanism works in this specific context and if it's universally usable in other constructs in the same way? Or point me to a document/website that describes it.
Thank you!
#2=
as well? I'm supposing that it's superfluous in this case. – Loppy