As a learning Exercise with the FizzBuzz code in F#.
此处的代码参考工作正常,看起来不错
在上面的代码中,我想学习/使用match而不是 if 条件如下,所以写了下面的函数,它适用于任何给定的 int 值。
let fizzbuzz num =
match num with
| x when (x % 3 = 0 && x % 5 = 0) -> printfn "%s" "FizzBuzz"
| x when (x % 3 = 0) -> printfn "%s" "Fizz"
| x when (x % 5 = 0) -> printfn "%s" "Buzz"
| _ -> printfn "%s" (num.ToString())
;;
输出:
fizzbuzz 15;;
FizzBuzz
val it : unit = ()
但是,在我上面的代码中,需要使用列表作为输入并将函数设为递归。我该怎么做?我理解列表的工作,即使用h::t
并t
作为递归传递给fizzbuzz
. 我猜我在语法上苦苦挣扎。
向您提供有关如何在上述代码中使用列表(模式匹配和累加器参数)的指导?
是否有任何关于如何使用 F# Interactive 窗口和更少按键的博客/参考,因为我发现自己再次为任何语法错误输入完整代码