我正在学习F#,我想知道如何使用F#编写这样的代码片段:
2.times {
puts "hello"
}
如果您可以解释如何/如果在F#中可以使用块的功能,那么这也很好。
答案 0 :(得分:11)
这是一个使用lambda(基本上是红宝石块):
{1..2} |> Seq.iter (fun _ -> printfn "hello")
这里Seq.iter
函数将lambda作为参数,在每次迭代中执行。
答案 1 :(得分:10)
我没有编译器方便,所以如果不编译,有人请解决这个问题。这是一种定义相应F#扩展成员的方法。
type System.Int32 with
member this.Times(act) =
for i in 1..this do
act()
(2).Times (fun() -> printfn "Hello")
答案 2 :(得分:2)
时间函数可写为:
let times act n =
for i in 1 .. n do
act()
可以调用:
2 |> times (fun () -> printfn "Hello")