小编use*_*390的帖子

迭代所有(行,列)的可能性?

这将是一个TicTacToe实现:

data Row    = A | B | C  deriving (Show, Read, Eq, Ord, Enum, Bounded)
data Column = X | Y | Z  deriving (Show, Read, Eq, Ord, Enum, Bounded)
type Pos = (Row, Column)
data Player = Player String
data Field = Field [(Pos, Player)]
initialField :: Field
initialField = Field []
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,initialField只是一个空列表,当玩家进行移动时,(pos,player)tupels将被添加到列表中.到现在为止还挺好.但是现在我在编写一个possibleMoves :: Field -> [Pos]函数来获取空字段时遇到了麻烦.如何迭代Haskell中的所有Row,Column可能性?我觉得我的方法是错的,但我是Haskell的新手,所以我没有更好的主意.

haskell loops list

3
推荐指数
1
解决办法
862
查看次数

Haskell:使用带有返回列表的函数的map?

我有这个编码功能:

class Encode a where
  encode :: a -> [Bit]
Run Code Online (Sandbox Code Playgroud)

我在编写一个函数时遇到问题,该函数将类型a的列表编码为位列表.我想递归编码列表的元素.根据我的理解,您可以使用map函数来实现此目的.问题是encode返回一个列表[Bit],而map只需要Bit.我怎么解决这个问题?这是该计划的相关部分.

instance Encode a => Encode [a] where
    encode [] = [I, O, O, I, O, I]
    encode m = ([I, O, O] ++ (map encode m) ++ [I, O, I])
Run Code Online (Sandbox Code Playgroud)

haskell list map

0
推荐指数
1
解决办法
336
查看次数

标签 统计

haskell ×2

list ×2

loops ×1

map ×1