Haskell 生成状态的邻居列表
我在哈斯凯尔的一个州创造邻居 状态是行的列表。这些操作可以在一行上独立执行。每行调用一个函数,返回该行的一组邻居 下面是一个示例(为了简单起见,我将让行为chars):Haskell 生成状态的邻居列表,haskell,Haskell,我在哈斯凯尔的一个州创造邻居 状态是行的列表。这些操作可以在一行上独立执行。每行调用一个函数,返回该行的一组邻居 下面是一个示例(为了简单起见,我将让行为chars): 邻居应在每一行调用行邻居,并生成一个状态列表[[['x','b','c'],['y','b','c'],['a','b','p'],['a','b','q'] 生成此列表时遇到问题。以下是我提出的解决方案 neighbours state = [ [x, y, z] | x <- rowNeighbours (state
邻居
应在每一行调用行邻居
,并生成一个状态列表[[['x','b','c'],['y','b','c'],['a','b','p'],['a','b','q']
生成此列表时遇到问题。以下是我提出的解决方案
neighbours state =
[ [x, y, z] | x <- rowNeighbours (state !! 0), y <- [state !! 1], z <- [state !! 2] ] ++
[ [x, y, z] | x <- [state !! 0], y <- rowNeighbours (state !! 1), z <- [state !! 2] ] ++
[ [x, y, z] | x <- [state !! 0], y <- [state !! 1], z <- rowNeighbours (state !! 2) ]
邻国国家=
[x,y,z]| x我想这会满足你的要求:
neighbors (s:tate) = map (: tate) (rowNeighbors s) ++ map (s :) (neighbors tate)
neighbors [] = []
neighbors (s:tate) = map (: tate) (rowNeighbors s) ++ map (s :) (neighbors tate)
neighbors [] = []