我有一个这个typedef的对象。
type ListDA = (State, [((State, Char), State)], [State])
对于函数,我需要第二个参数,但我现在不知道如何得到它。
我有一个这个typedef的对象。
type ListDA = (State, [((State, Char), State)], [State])
对于函数,我需要第二个参数,但我现在不知道如何得到它。
您可以编写一个辅助函数:
snd3 :: (a, b, c) -> b
snd3 (_, b, _) = b
或者您可以直接在函数参数中进行模式匹配,例如通过替换
yourFunction object = ...
和
yourFunction object @ (_, secondArgument, _) = ...
您最好定义一个单独的类型:
data ListDA = ListDA {firstField :: State,
secondField :: [((State, Char), State)],
thirdField :: [State]}
此方法为您定义访问器函数。