Types Elm-合同中的开放式类型
鉴于伪合同:Types Elm-合同中的开放式类型,types,elm,contract,Types,Elm,Contract,鉴于伪合同: condy: Int -> Int -> a -> b condy n m a b = if n == m then a else b 如何正确定义上述合同,使a和b的类型相等,但可以是任何类型?有效地,上述功能消除了对每种类型的附加功能condyEffect[Type]: condyPrime: Int -> Int -> Bool condy n m = n == m condyEffectInt: Bool -> Int con
condy: Int -> Int -> a -> b
condy n m a b =
if n == m then a else b
如何正确定义上述合同,使a和b的类型相等,但可以是任何类型?有效地,上述功能消除了对每种类型的附加功能condyEffect[Type]
:
condyPrime: Int -> Int -> Bool
condy n m =
n == m
condyEffectInt: Bool -> Int
condyEffectInt bool k l =
if bool then k else l
您的
condy
函数如下所示:
condy:Int->Int->a->a->a
康迪n m a b=
如果n==m,则a等于b
类型签名中的a->a->a
部分只是说condy
的第三个和第四个参数必须是相同的类型,而类型注释中的最后一个a
则说返回值必须是与第三个和第四个参数相同的类型