我正在尝试在Ocaml中创建一个函数列表,但我一直在收到警告.知道为什么吗?
设f = [fun x - > -x; fun x - > x + 2; fun x - > x*x]
nlu*_*oni 10
分号也用于结束用于副作用的功能.当这些函数的返回类型不是时unit(在这种情况下int),会发出警告; 它们只是警告,因为您可能只打算使用副作用,通常这是一个错误.这是一个旁边,但要以编程方式和安全地使用该ignore功能来抑制这些警告,如ignore (x+2);.
回到你的问题,在其中(并将分号扩展到它们的等价;并修改每个函数的变量)你实际上在写,
(fun x ->
let _ = -x in
(fun y ->
let _ = y+2 in
(fun z -> z*z)))
Run Code Online (Sandbox Code Playgroud)
或者,另一个例子,如汽油指出,
(fun x ->
-x;
(fun y ->
y+2;
(fun z -> z*z)))
Run Code Online (Sandbox Code Playgroud)
你可以从返回的类型中(int -> int -> int -> int) list看出,你的意图会立刻出现问题.你需要在每个周围添加括号,比如(fun x -> x+2);实际创建一个列表.
| 归档时间: |
|
| 查看次数: |
6467 次 |
| 最近记录: |