Я смотрю отличный учебник Clojure here. В одном из примеров он имеет Clojure код по следующим направлениям:Почему "(def vowel? (Set" aeiou "))" Работаете?
(def vowel? (set "aeiou"))
Это делает гласный возвращает истину для гласных и согласных ложно для:
(vowel? (first "abc")) ; => true
(vowel? (first "cba")) ; => false
Почему это? Я предполагаю, что это имеет какое-то отношение к знаку вопроса за именем переменной. Не удалось найти что-либо сразу же в учебнике ...
Редактировать Я просто понял, vowel?
не возвращается истинным или ложным, а сам элемент или ноль. См. Мой собственный ответ.
Звучит прямо для меня. Значок вопроса указывает, что он может использоваться в качестве теста. Вы часто увидите восклицательный знак о функциях, которые имеют побочные эффекты. Они не являются частью языка, они - настоящие традиции (так что вы знаете безопасные функции от «опасных»). – MBCook
Чтобы было ясно,? а также ! являются просто символами типа a и b, и вы можете использовать их для обозначения символов (как \, /, *, -, + ...). Существуют традиции для обозначения определенных символов в Лиспе, но между диалектами существуют небольшие различия. – Svante
ах, спасибо @svante! Я думал, что есть что-то волшебное о «?» :) – Epaga