一直存在一些與此有關的實際問題,並且在任何閱讀中都無法找到任何指導。一直負責實現函數以完成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