私は優れたClojureチュートリアルhereを見ています。それは次の行に沿ってClojureのコードを持っている例の一つでは:なぜ "(def aowou?(set" aeiou "))"は動作しますか?
(def vowel? (set "aeiou"))
これは母音は母音のために真と子音のためにfalseを返します:
(vowel? (first "abc")) ; => true
(vowel? (first "cba")) ; => false
これはなぜでしょうか?変数名の背後にある疑問符と何か関係があると仮定しています。編集
...チュートリアルですぐに
を何かを見つけることができませんでした私はちょうど
vowel?
が真か偽ではなく、要素自体またはnilを返しません実現。私自身の答えを見てください。
私に聞こえる音。疑問符は、テストとして使用できることを示します。副作用のある関数については、しばしば感嘆符が表示されます。彼らは言語の一部ではなく、彼らはリスプの伝統です(あなたは "危険な"ものから安全な機能を知っています)。 – MBCook
これを明確にするには?そして! aやbのような文字だけで、名前のシンボル(\、/、*、 - 、+など)に使用できます。 Lispには特定のシンボルの名前を付ける伝統がありますが、方言には小さな違いがあります。 – Svante
ああ、ありがとう@Svante!私は "魔法のようなものがあると思った?" :) – Epaga