次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 第二世代 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0028デフォルトの名無しさん
2017/02/12(日) 04:49:45.47ID:eJbIlXCt書き直してみた
もはや最速DSLっぽい何かに…
let if_true_then flist x =
let bind z f =
match z |> fst |> f with
|(false, _) -> z
|(true, y) -> (fst z, y)
List.fold bind (x, string x) flist |> snd
let Fizz x = (x%3=0, "Fizz")
let Buzz x = (x%5=0, "Buzz")
let FizzBuzz x = (x%15=0, "FizzBuzz")
[1..50]
|> List.map (if_true_then [Fizz; Buzz; FizzBuzz])
|> List.iter (fun x -> printfn "%s" x)
■ このスレッドは過去ログ倉庫に格納されています