Clojureで次のことを試してみました
(map future exprs)
将来のトークンのシーケンスを取得します。残念ながら、これfuture
は関数ではなくマクロであるため、エラーになります。
map
構文を維持しながらこれを機能させる方法はありますか?私はむしろfor
マクロを使用したくありません(個人的なスタイルの問題として)。
mmap
またはマクロマップを探していると思います。
Clojureで次のことを試してみました
(map future exprs)
将来のトークンのシーケンスを取得します。残念ながら、これfuture
は関数ではなくマクロであるため、エラーになります。
map
構文を維持しながらこれを機能させる方法はありますか?私はむしろfor
マクロを使用したくありません(個人的なスタイルの問題として)。
mmap
またはマクロマップを探していると思います。
Marcinがすでに述べたように、ラムダ(無名関数)を使用します
user=> (map and [true false 0 nil])
java.lang.Exception: Can't take value of a macro: #'clojure.core/and (NO_SOURCE_FILE:1)
user=> (map #(and %) [true false 0 nil])
(true false 0 nil)
編集
ちなみに、map
他のスレッドで実行される一連のタスクを作成するために使用している場合は、問題が発生する可能性があります。map
怠惰であり、何かがそれらを要求するまで先物は作成されません。それを強制的に評価するか(これは、replが結果を出力するときにreplで発生することです)、または他の方法を見つける必要があります。