Вы все знаете историю: программист читает код других людей, программист видит символ, который они не понимают, Google терпит неудачу, потому что трудно искать не-буквенно-цифровые символы.
На этот раз это символ @
, который, кажется, используется для ввода содержимого одного списка в середину другого. Например:
`(5 6 7 ,@'(8 9) 10 11)
;=> (5 6 7 8 9 10 11)
Мне это нравится, но мне интересно, правильно ли я понимаю поведение @
? Есть ли у него другие виды использования? И что вызывает ошибку в следующем расшифровке (из CLISP)?
[1]> (list 1 2 3 4 @'(5 6 7))
*** - SYSTEM::READ-EVAL-PRINT: variable @ has no value
Наконец, что такое @
? Это не похоже на функцию:
[3]> (print #'@)
*** - FUNCTION: undefined function @
Я предполагаю, что это фундаментальный синтаксис, такой как backquote (`
) или запятая (,
). Это верно? Извините, если это дубликат, но еще раз, насколько я знаю, невозможно найти @
.