我正在努力找出为什么下面的代码不起作用。
假设我为通用类型定义了一个函数 Map(如 List.Map)。
type Uni = Iu of int
| Flu of float
| Su of string
| Bu of bool
| Lu of Uni List
| Fu of (Uni -> Uni)
let uMap : Uni -> Uni -> Uni =
fun (Fu f) (Lu xs) -> Lu (List.map f xs)
效果很好,现在我正在尝试调用该函数,但我的代码似乎与函数签名不匹配。
uMap (Fu(fun (Iu(x)) -> Iu(x) + Iu(1))) (Lu([Iu(2); Iu(3); Iu(4)]))
错误来自应用于映射的函数(第一个参数),更具体地说,来自Iu(1)
内部(Fu(fun (Iu(x)) -> Iu(x) + Iu(1)))
错误 FS0584:连续的模式应该用空格分隔或元组
我应该如何使用这个功能?我似乎找不到任何问题。