函数参数
type Dog = Dog String
dogName1 dog =
case dog of
Dog name ->
name
dogName2 (Dog name) ->
name
dogName1
和 dogName2
是等价的。请注意,这仅适用于具有单个构造函数的 ADT。
type alias Pet =
{ name: String
, weight: Float
}
render : Pet -> String
render ({name, weight} as pet) =
(findPetEmoji pet) ++ " " ++ name ++ " weighs " ++ (toString weight)
findPetEmoji : Pet -> String
findPetEmoji pet =
Debug.crash "Implementation TBD"
在这里,我们解构一条记录,并获得对未构造记录的引用。