一直存在一些与此有关的实际问题,并且在任何阅读中都无法找到任何指导。一直负责实现函数以完成Connect 4的Haskell版本。该板被表示为使用Data.List的片段列表。在Haskell中更改列表中的单个值[家庭作业]
其中一个功能是放弃一块给定的块和列号。为此,我只想将该部分添加到相应的列中,并完成它,但似乎能够做到这一点的唯一方法是通过列表递归,直到我到达右侧列,然后添加该部分。
有什么办法可以做得更好?
我可怕的代码如下:
cheatPiece :: GameState -> Int -> Piece -> GameState
cheatPiece [] _ _ = []
cheatPiece (xs:xss) 0 x = (x:xs) : xss
cheatPiece (xs:xss) n x = xs : cheatPiece xss (n-1) x
如果你不想自己做,镜头是要走的路。 – AJFarmar