Шифрование по цезарю
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
module Lib
|
||||
(
|
||||
createAlphabetFromText
|
||||
createAlphabetFromText,
|
||||
encryptCaesar
|
||||
) where
|
||||
|
||||
createAlphabetFromText :: String -> [Char]
|
||||
@@ -9,4 +10,15 @@ createAlphabetFromText (x:xs)
|
||||
| x `elem` alphabet = alphabet
|
||||
| otherwise = x : alphabet
|
||||
where
|
||||
alphabet = createAlphabetFromText xs
|
||||
alphabet = createAlphabetFromText xs
|
||||
|
||||
indexOf :: (Eq t) => [t] -> t -> Int
|
||||
indexOf [] _ = -1
|
||||
indexOf (x : xs) target
|
||||
| x == target = 0
|
||||
| otherwise = 1 + indexOf xs target
|
||||
|
||||
encryptCaesar :: [Char] -> Int -> String -> String
|
||||
encryptCaesar alphabet shift text = map caesarChar text
|
||||
where
|
||||
caesarChar c = alphabet !! ((indexOf alphabet c + shift) `mod` length alphabet)
|
||||
Reference in New Issue
Block a user