質問: クロージャーの怠惰の地図 私はClojureで簡単なGUIを構築しています。私は、letのコンテキストでmapを使用して、複数のGUIコンポーネントに単一の関数を適用しようとしています。 `(マップ#(f%コンポーネント4)[コンポーネント1コンポーネント2コンポーネント3])` コンポーネントはすべてletで定義されています。 問題は、マップが怠惰で、アクションがコンポーネントに適用されていないことですが、私はそれを 'take'にラップして強制することができます。 マップするための怠惰な代替手段はありますか?それとも私はこれについて別のことをするべきですか? 編集: 日食で反時計回りに使用。私は、REPLから( 'Lib:reload'を使用して)エディタからCTRL + Enterを使用して異なる結果を得ました。リロードするとGUIが起動しますが、上記の問題が発生します。エディタからCTRL + Enterを使用しても問題は発生しませんでした。したがって、問題の記述が不正確かもしれません。いずれにせよ、このシナリオでは、doseqがマップの代わりになるようです。
回答: 私は、 `take` を取っても何の違いもないというあなたの主張に挑戦します。 `doall` または `dorun` でラップした場合、必要な処理が行われますが、 `map` の代わりに`この種の副作用のみのアクションのためのコード>。` `注意 もともと質問にコメントとして投稿されました。人気のある需要によって答えにコピーされています。`