这个表达式应该有float类型,但是这里有'a*'b类型

1 floating-point int f#

我正在尝试一个可以找到毕达哥拉斯的简单F#脚本.

这是代码:

open System

let FindHypotenuse a b =
    Math.Sqrt(Math.Pow(a, 2.0) + Math.Pow(b, 2.0))

FindHypotenuse(2.0, 3.0)
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Bri*_*ian 8

你已经定义了函数来获取两个curried参数,然后用一个元组调用它.要么称之为

FindHypotenuse 2.0 3.0  // no commas
Run Code Online (Sandbox Code Playgroud)

或重新定义它以取一个元组

let FindHypotenuse(a,b) = ...
Run Code Online (Sandbox Code Playgroud)

请注意," 'a * 'b"是元组类型的名称.也可以看看:

http://lorgonblog.wordpress.com/2008/04/03/f-function-types-fun-with-tuples-and-currying/