以下が機能します。
(map #(%1 "21") [identity])
ただし、次のコードは失敗します
(map #(%1 "21") [.toString])
Java メソッドの seq/collection を作成するにはどうすればよいですか?
以下が機能します。
(map #(%1 "21") [identity])
ただし、次のコードは失敗します
(map #(%1 "21") [.toString])
Java メソッドの seq/collection を作成するにはどうすればよいですか?
Java メソッドは、clojure の関数のような第一級市民ではありません。Java メソッドをパラメータとして渡したり、変数やコレクションに戻したり格納したりすることはできません。ただし、 memfnまたは元のメソッド呼び出しをラップする無名関数で関数を作成できます
(map #(%1 21) [(memfn toString)])
=> ("21")
(map #(%1 21) [#(.toString %)])
=> ("21")