6

以下が機能します。

(map #(%1 "21") [identity])

ただし、次のコードは失敗します

(map #(%1 "21") [.toString])

Java メソッドの seq/collection を作成するにはどうすればよいですか?

4

1 に答える 1

10

Java メソッドは、clojure の関数のような第一級市民ではありません。Java メソッドをパラメータとして渡したり、変数やコレクションに戻したり格納したりすることはできません。ただし、 memfnまたは元のメソッド呼び出しをラップする無名関数で関数を作成できます

(map #(%1 21) [(memfn toString)])
=> ("21")

(map #(%1 21) [#(.toString %)])
=> ("21")
于 2013-03-05T07:47:52.330 に答える