ハスケルを新しくして[[(Int, Int)]]
を構築しようとしました。ここで、各要素は対応するグリッド位置です。別のボード[[a]]
から構成されています。したがって、辺の長さ3の正方形の[[a]]
は、インデックス、要素タプルに要素をスローする
[[(0, 0), (1, 0), (2, 0)]
,[(0, 1), (1, 1), (2, 1)]
,[(0, 2), (1, 2), (2, 2)]]
私は大規模な簡単に何かが欠けていますので、もし(最終的に私は、[[b]]
を作成するタイプ[[a]] -> (Int, Int) -> b
の関数にmap (map ...)
でこれを反復処理することがありますを作成します私に知らせて)
にPythonでは、私のようなものするかもしれない!と言うことです
[[(x,y) for (x,_) in enumerate(board[y])] for (y,_) in enumerate(board)]
を、私はを構築するためにenumerate
組み込みを使用したいです0つのタプルと要素を捨てる。
私は私が行うことができますHaskellで知っている:
[[(x,y) | x <- [0..length (board!!y)-1]] | y <- [0..length board-1]]
が、パイソン(for foo in range(len(bar))
)における構造のものと種類がアンチパターンと大きく落胆のビットです。ハスケルでもそうですか?私は、私は、Pythonを書きたいようハスケルを書くとしたら
することは、私がやるだろう:
[[(x,y) | (x,_) <- zip [0..] (board!!y)] | (y,_) <- zip [0..] board]
をひんしゅくを買うことですか?
もっと一般的には、よく書かれていて慣用的であれば、Pythonでは「Pythonic」と言います。 "Haskellion"構造のための類似の用語がここにありますか? –