Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
25
Task/Caesar-cipher/OCaml/caesar-cipher-1.ocaml
Normal file
25
Task/Caesar-cipher/OCaml/caesar-cipher-1.ocaml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
let islower c =
|
||||
c >= 'a' && c <= 'z'
|
||||
|
||||
let isupper c =
|
||||
c >= 'A' && c <= 'Z'
|
||||
|
||||
let rot x str =
|
||||
let upchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
and lowchars = "abcdefghijklmnopqrstuvwxyz" in
|
||||
let rec decal x =
|
||||
if x < 0 then decal (x + 26) else x
|
||||
in
|
||||
let x = (decal x) mod 26 in
|
||||
let decal_up = x - (int_of_char 'A')
|
||||
and decal_low = x - (int_of_char 'a') in
|
||||
String.map (fun c ->
|
||||
if islower c then
|
||||
let j = ((int_of_char c) + decal_low) mod 26 in
|
||||
lowchars.[j]
|
||||
else if isupper c then
|
||||
let j = ((int_of_char c) + decal_up) mod 26 in
|
||||
upchars.[j]
|
||||
else
|
||||
c
|
||||
) str
|
||||
9
Task/Caesar-cipher/OCaml/caesar-cipher-2.ocaml
Normal file
9
Task/Caesar-cipher/OCaml/caesar-cipher-2.ocaml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
let () =
|
||||
let key = 3 in
|
||||
let orig = "The five boxing wizards jump quickly" in
|
||||
let enciphered = rot key orig in
|
||||
print_endline enciphered;
|
||||
let deciphered = rot (- key) enciphered in
|
||||
print_endline deciphered;
|
||||
Printf.printf "equal: %b\n" (orig = deciphered)
|
||||
;;
|
||||
Loading…
Add table
Add a link
Reference in a new issue