我刚刚开始学习OCaml而且我不明白为什么这个函数不能编译。
add_half为列表中的每个值添加0.5;首先,他们必须在浮动
示例:
代码:
#include <iostream>
编译器给出以下错误:
let rec add_half l = match l with
| [ ] -> [ ]
| x::xs -> let l = float_of_int x
in (x + 0.5) :: add_half xs
如何更改此功能?
答案 0 :(得分:3)
首先,当您将x
转换为浮点数时,您将继续使用int值(x
)而不是转换后的值(混淆地命名为{ {1}})。其次,OCaml具有特定于浮点的算术运算符,由尾随l
表示。因此,浮点加法需要.
运算符。
编译:
+.