我是 OCaml 的新手,我只是在学习它。我正在尝试执行一个简单的函数来计算(a+b)^2
或(a-b)^2
基于a
和b
我正在尝试具有如下功能
let a_squared_b a b =
if(a<0 || b<0) then
(a**2 + b**2 + 2*a*b)
else
(a**2 + b**2 - 2*a*b);;
返回警告
Error: This expression has type int but
an expression was expected of type float
所以我尝试了下面的一个:
let a_squared_b (a:float) (b:float) : float =
if(a<0 || b<0)
then (a**2 + b**2 + 2*a*b)
else (a**2 + b**2 - 2*a*b);;
这也警告了一些事情。因此,我继续检查该函数是否至少可以工作,但它返回错误的结果 -
a_squared_b 2 2;;
- : int = 0
我不确定我做错了什么,任何帮助将不胜感激