私はClojureの質問135InfixCalculatorに取り組んできました。これは、基本的に、算術計算機に接頭辞を付けるための単純化された中置です。
(= 7 (__ 2 + 5))
指定通りに問題を解決しました。しかし、それは私に疑問を抱かせました-引数が文字列として提供された場合はどうなりますか-どうすればそれを機能させることができますか?
(= 7 (__ "2 + 5"))
明らかに、私は分割から始めて、結果をざっと見ていきます。
(clojure.string/split "2 + 5" #"\s")
user=> ["2" "+" "5"]
しかし、「+」を関数呼び出しに変換するにはどうすればよいでしょうか。これは機能しません:
("+" 2 5)
user=> java.lang.ClassCastException: java.lang.String cannot be
cast to clojure.lang.IFn <snip>
悟りを求めた…。