如何在haskell中设置自定义类型的属性

时间:2014-06-17 15:26:56

标签: haskell types

这是我的类型学生:

type Student    = (String, Integer) -- name, id
alex = ("Alex", 42)

是否可以更改Alex的ID?我的意思是像 alex.id = 10

1 个答案:

答案 0 :(得分:2)

不,Haskell中的值是不可变的,一旦分配它们就无法更改它们。您可以使用新ID创建新元组,但肯定不会使用您提出的语法。你可能想要这样的东西:

assignID :: Student -> Integer -> Student
assignID (name, oldID) newID = (name, newID)

然后你可以用它作为

type Student = (String, Integer)

alex :: Student
alex = ("Alex", 42)

main :: IO ()
main = do
    let newAlex = assignID alex 10
    putStr "Old alex: "
    print alex
    putStr "New alex: "
    print newAlex