map (関数) へのネストされた呼び出しを使用して、一連のマップ (データ構造) を構築したいと考えています。これが私がやっていることです
(defn point [x y]
{:x-coord x
:y-coord y})
(defn grid [rows columns]
(mapcat
(fn [x] map
(fn [y] (point x y))
(range columns))
(range rows)))
これは正常にコンパイルされますが、期待どおりには機能しません。grid を呼び出すと、一連のマップが生成されると予想していました。
user=>(grid 2 2)
({:x-coord 0, :y-coord 0} {:x-coord 0, :y-coord 1} {:x-coord 1, :y-coord 0} {:x-coord 1, :y-coord 1})
しかし、実際に得たのは int のシーケンスでした:
user=> (grid 2 2)
(0 1 0 1)
私の質問は、どうすれば必要なシーケンスを取得できますか? そして、なぜ特定のシーケンスを取得したのですか?