Şimdi bunu bir anlığına anlamaya çalışıyorum.Clojure 'if' üçüncü argümanını hiç değerlendirmiyorsa
(defn is-decimal [astr]
(if (. astr (indexOf (int \.)))
(Double/parseDouble astr)
(Integer/parseInt astr)))
Bu, yazdığım işlevdir. is-decimal
ya "2.5" veya "5" gibi bir şeyden geçmiştir ya da türden bir şeydir, ancak her zaman üçüncü olarak if
'un ikinci bağımsız değişkenini kullanır. REPL'de (. astr (indexOf (int \.)))
'u test ettim ve iyi çalışıyor gibi görünüyor, başarısız olduğunda -1 döndürüyor ve olmadığı zaman 1 döndürüyor. Bu sorunun olabileceğine inanıyorum. -1 Clojure'de yanlış anlamında değildir. Bunu düzeltmenin bir yolu var mı?
Şimdiden teşekkürler.
DÜZENLEME: Yardımınız için teşekkürler. Bunu yazdıktan hemen sonra bir fikrim vardı. 1 ve -1 için kontrol eden bir yüklem işlevi yazdım. Tam ihtiyacım olan şey. o
Clojure hakkında nefret ettiğim tek şey, aradığım işlevi bilmemin hiçbir yolu yok: \ – Rayne
Evet, dokümanlar oldukça seyrek. Hemen hemen tüm API'yi otur ve okumak zorundasın. 'bul-doc' da yardımcı olur. Ayrıca http://github.com/mmcgrana/clj-doc/tree/master adresini ziyaret edin –
Clojure hile sayfası da çok faydalı: http://clojure.org/cheatsheet – ollb