是否可以在 F# 中创建将基本类型限制在某个范围内的自定义类型?有条件地看起来像这样的东西
type myInt = Value of int when Value > 1000 & Value < 1000;
并且会在编译时禁止分配无效值
let a : myInt = 1000; //ошибка, не компилируется
是否可以在 F# 中创建将基本类型限制在某个范围内的自定义类型?有条件地看起来像这样的东西
type myInt = Value of int when Value > 1000 & Value < 1000;
并且会在编译时禁止分配无效值
let a : myInt = 1000; //ошибка, не компилируется
这样的问题......根据作业,我需要将此代码转换为以下类型链:int -> float -> float,但我不能这样做(我会很高兴任何澄清!
let vat n x = if 0.0 <= n && n <= 100.0 then (n / 100.0) * x else 0.0
let n_perc = vat 1.0
printfn "%f" (n_perc 100.0)
这是代码:
let rec fact n =
if n<=1 then 1.0
else float n*fact(n-1)
let rec step x n =
if n=0 then 1.0
else x*stepx(n-1)
let minus n =
if n%2=0 then 1
else -1
let otn x n =
minus n * stepx(2*n)/fact(2*n)
minus n*(fun k -> step x k/fact k)(2*n)
let mycos x = sum x 1.0E-6
let rec sum x n eps
let z = otn x n
if abs z < eps then z
else z + sum x(n+1) eps
我不知道为什么它不起作用,请帮助
你好!
帮助我弄清楚反向管道是如何工作的。
假设有一段代码:
let add x y =
x + y
[<EntryPoint>]
let main argv =
add 2 <| add 3 <| 4 |> add 7 |> add 8
此代码不正确,但删除后将变为正确add 2 <|
为什么这段代码现在不正确?传递了add 2什么?