diff options
| -rw-r--r-- | challenge-328/hvukman/f#/328_p1.fs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/challenge-328/hvukman/f#/328_p1.fs b/challenge-328/hvukman/f#/328_p1.fs new file mode 100644 index 0000000000..7c1ce7d3f7 --- /dev/null +++ b/challenge-328/hvukman/f#/328_p1.fs @@ -0,0 +1,12 @@ +open System +let example = "a?z" +let rnd = new Random() + +// choose random a-z +let rnd_char = ['a' .. 'z'].[rnd.Next(0, 25) ] + +// tailcall rec newchar; if n=x repeat newchar with new randomchar +[<TailCall>] +let rec newchar n x = if n=x then newchar rnd_char x else printfn "%c" n +// iterate over string +String.iter (fun x -> if x <> '?' then printfn "%c" x else newchar rnd_char x) example |
