我有一个这个typedef的对象形式。
type ListDA = (State, [((State, Char), State)], [State])
对于一个函数,我需要第二个参数,我现在不知道如何得到它。
答案 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]}
此方法为您定义访问者功能。