从Haskell中创建的类型中检索值

时间:2017-10-10 20:46:46

标签: haskell

如果我创建一个类型,例如type SchoolClass = (Int,Char),我如何从SchoolClass变量中只检索Int?我可以创建一个将SchoolClass变量作为参数的函数,但是,有一个简单的解决方案已经内置到Haskell中吗?对不起,如果这是一个简单的问题,我找不到合适的搜索条件来得到答案,我对Haskell来说真的很新。 感谢

1 个答案:

答案 0 :(得分:1)

类型同义词(例如SchoolClass)的行为完全就像它们所代表的类型一样,所以很简单:

getIntFromClass :: SchoolClass -> Int
getIntFromClass (i, _) = i

这实际上与fst函数相同,它具有类型(a,b) -> a,即它获得了2元组的第一个成员。所以你可以写:

getIntFromClass = fst

如果您需要datatype方面的帮助,请阅读LYAH chapter on the subject