F#应用泛类型映射
我正在努力找出下面这段代码不起作用的原因 假设我为通用类型定义了一个函数映射(比如List.Map)F#应用泛类型映射,f#,functional-programming,F#,Functional Programming,我正在努力找出下面这段代码不起作用的原因 假设我为通用类型定义了一个函数映射(比如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 -> Un
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:连续图案应以空格或空格分隔
元组
我应该如何使用此功能?我似乎找不到任何问题。我想你真的想要
uMap (Fu(fun (Iu(x)) -> Iu(x + 1))) (Lu([Iu(2); Iu(3); Iu(4)]));;
你的几个括号放错了地方,我想你在你分别指的是
x
和1
的地方使用了Iu(x)和1
。我想你确实想要
uMap (Fu(fun (Iu(x)) -> Iu(x + 1))) (Lu([Iu(2); Iu(3); Iu(4)]));;
你的几个括号放错了地方,我想你在你分别指的是x
和1
的地方使用了Iu(x)和1
。这个问题不需要c
标签。已删除。此问题不需要c#
标记。远离的。