Przyjrzyj się znakomitemu samouczkowi Clojure here. W jednym z przykładów, jakie ma kodu Clojure wzdłuż następujących linii:dlaczego "(def samogłoska? (Ustaw" aeiou "))" działa?
(def vowel? (set "aeiou"))
To sprawia samogłoska return true dla samogłosek i spółgłosek false:
(vowel? (first "abc")) ; => true
(vowel? (first "cba")) ; => false
Dlaczego tak jest? Zakładam, że ma to coś wspólnego ze znakiem zapytania za nazwą zmiennej. Nie znaleźliśmy niczego od razu w tutorialu ...
Edit Właśnie uświadomiłem sobie vowel?
nie zwraca prawdę lub fałsz, lecz element sama lub zerowa. Zobacz moją własną odpowiedź.
Brzmi dobrze dla mnie. Znak zapytania wskazuje, że można go użyć jako testu. Często widzisz wykrzyknik na funkcjach, które mają efekty uboczne. Nie są częścią języka, są tradycją seplenienia (więc znasz bezpieczne funkcje z "niebezpiecznych"). – MBCook
Aby było jasne,? i ! są po prostu znakami takimi jak aib, i można ich używać do nazywania symboli (tak jak są to \, /, *, -, + ...). Istnieją tradycje nazywania pewnych symboli w Lisp, ale istnieją niewielkie różnice między dialektami. – Svante
ah, dzięki @svante! Myślałem, że jest coś magicznego w "?" :) – Epaga