0

我有一个这个typedef的对象。

type ListDA = (State, [((State, Char), State)], [State])

对于函数,我需要第二个参数,但我现在不知道如何得到它。

4

1 回答 1

5

您可以编写一个辅助函数:

snd3 :: (a, b, c) -> b
snd3 (_, b, _) = b

或者您可以直接在函数参数中进行模式匹配,例如通过替换

yourFunction object = ...

yourFunction object @ (_, secondArgument, _) = ...

您最好定义一个单独的类型:

data ListDA = ListDA {firstField  :: State,
                      secondField :: [((State, Char), State)],
                      thirdField  :: [State]}

此方法为您定义访问器函数。

于 2012-11-21T10:06:30.600 回答