F#应用泛类型映射

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

我正在努力找出下面这段代码不起作用的原因

假设我为通用类型定义了一个函数映射(比如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:连续图案应以空格或空格分隔 元组


我应该如何使用此功能?我似乎找不到任何问题。

我想你真的想要

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#
标记。远离的。