如何获取类型对象的第二个参数

时间:2012-11-21 10:02:18

标签: haskell

我有一个这个typedef的对象形式。

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

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

1 个答案:

答案 0 :(得分: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]}

此方法为您定义访问者功能。