Haskell:对功能列表参数中的每个元素执行功能

问题描述 投票:1回答:1

可能对此有一个简单的答案,但是我是Haskell的新手。我试图遍历一个函数参数,并使用每个列表元素来调用另一个函数。我有一个函数,可以根据给定的游戏板,移动和玩家编号执行移动,并返回新的游戏板。它的函数头看起来像这样:

play :: [[Char]] -> Char -> Char -> [[Char]]
play gameBoard moveDirection playerSymbol = ...

我正在尝试从具有初始游戏板参数和要在游戏板上执行的动作列表的驱动程序函数中调用它。有没有一种方法可以为移动列表中的每个元素调用play函数,以便在进行了每次移动后,下面的gameExample函数将返回游戏板?

moveDirections = "udlrudlr"
gameExample :: [[Char]] -> [Char] -> [[Char]]
gameExample gameBoard (moveDirection : moveDirections) = 
    play gameBoard moveDirection 'p'

如果需要任何说明,请告诉我。

haskell ghc ghci
1个回答
2
投票

您可以通过显式递归来完成:

© www.soinside.com 2019 - 2024. All rights reserved.