这是我的类型学生:
type Student = (String, Integer) -- name, id
alex = ("Alex", 42)
是否可以更改Alex的ID?我的意思是像 alex.id = 10
答案 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