今日も1日がんばるぞい!
こういう話がある
これをF#でやりたい。
open System let dic = [ [|"今日"; "ぞい"|]; [|"も"|]; [|"1"; "ぞい"|]; [|"日"; "ぞい"|]; [|"がん"; "ぞい"|]; [|"ばる"; "ぞい"|]; [|"ぞい!"|]] let rnd = new System.Random() let make_zoi (x : string [] list) = let rec make_zoi_inner (lst : string [] list) = match lst with | head::tail -> head.[rnd.Next(Array.length head)] + make_zoi_inner(tail) | [] -> "" make_zoi_inner x let count_zoi(x : string [] list) = let rec count_zoi_inner count = let zoi = make_zoi(x) printfn "%s" zoi match zoi with | "今日も1日がんばるぞい!" -> count + 1 | _ -> count_zoi_inner(count+1) count_zoi_inner 0 printfn "🌟 がんばるまで %d zoiでした🌟" (count_zoi dic)
実行すると以下。
> ぞいもぞいぞいがんぞいぞい! ぞいも1日ぞいばるぞい! 今日も1日ぞいばるぞい! 今日もぞい日ぞいぞいぞい! ぞいもぞい日ぞいばるぞい! 今日もぞいぞいぞいぞいぞい! 今日も1日がんばるぞい! 🌟 がんばるまで 7 zoiでした🌟 val it : unit = ()