再帰処理の書き方比較(F#, C#)

F# めっちゃ最小限でかけるじゃん!って興奮したけど、C# も書いてみたら、思いのほかそんなにたいして記述量変わらなかったよねって気づいたところを記念して、記事に残しておきます。

[<EntryPoint>]
let main argv = 
    
    let print x = printfn "%A" x
    let rec kaijo x =
        match x with
        | 1 -> 1
        | _ -> x * kaijo (x-1)
    
    kaijo 3 |> print
    kaijo 8 |> print

    System.Console.ReadKey() |> ignore
    0
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(kaijo(3));
            Console.WriteLine(kaijo(8));

            Console.ReadKey();
        }

        static int kaijo(int i)
        {
            if (i == 1) return 1;
            else return i * kaijo(i - 1);
        }
    }
}