Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 生成状态的邻居列表_Haskell - Fatal编程技术网

Haskell 生成状态的邻居列表

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

我在哈斯凯尔的一个州创造邻居

状态是行的列表。这些操作可以在一行上独立执行。每行调用一个函数,返回该行的一组邻居

下面是一个示例(为了简单起见,我将让行为chars):

邻居
应在每一行调用
行邻居
,并生成一个状态列表
[[['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 [] = []