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
则说返回值必须是与第三个和第四个参数相同的类型