Caesar cipher: Difference between revisions

Content added Content deleted
Line 225: Line 225:


=={{header|F_Sharp|F#}}==
=={{header|F_Sharp|F#}}==
<lang fsharp>open System
<lang fsharp>


module caesar =
module caesar =
let cipher (k:int) (m:string) =
let cipher (k : int) (m : string) =
m.ToUpper().ToCharArray()
m.ToUpper()
|> Array.filter Char.IsLetter
|> Seq.toArray
|> Array.map int
|> Array.map (fun c -> ((int c - 65 + k) % 26 + 65) |> char)
|> Array.map (fun c -> ((c - 65 + k) % 26 + 65) |> char)
|> (fun s -> new string(s))
|> (fun s -> new string(s))
let encrypt k = cipher k

let encrypt k = cipher k
let decrypt k = cipher (26 - k)
let decrypt k = cipher (26 - k)
</lang>
</lang>
<pre>&gt; caesar.encrypt 2 HI
<pre>&gt; caesar.encrypt 2 HI