我是F#初学者
作品:
let add x y = x + y
let x : decimal = 2 |> add 3
不起作用:
let add (x : decimal, y : decimal) = x + y
let x : decimal = 2m |> add 3m
答案 0 :(得分:7)
因为(x : decimal, y : decimal)
是两个小数的元组。函数的签名为decimal * decimal -> decimal
。即它接受单个参数(元组)并返回十进制值。
您需要改为传递两个参数:(x : decimal) (y : decimal)
let add (x : decimal) (y : decimal) = x + y // decimal -> decimal -> decimal
let x = 2m |> add 3m
请记住,如果您在F#中看到,
,那么您正在查看元组。此处,逗号不用作参数定界符。