1votos

Cifrado César en Haskell

por josejuan hace 6 años

Otra mas.

Implementar funciones para el cifrado César (cifrado por desplazamiento, código de César o desplazamiento de César)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import Data.List (elemIndex) 
 
-- Permite definir cualquier alfabeto: 
cesarABC :: [Char] 
cesarABC = ['a'..'z'] ++ ['A'..'Z'] ++ ['á'..'ú'] ++ ['Á'..'Ú'] -- etc... 
 
-- Codifica o decodifica un caracter: 
cesarChar :: Int -> Char -> Char 
cesarChar n c = case c `elemIndex` cesarABC of 
                Just x -> (cycle cesarABC)!!(length cesarABC + n + x) 
                _      -> c 
 
-- Codifica o decodifica una cadena: 
cesarString :: Int -> String -> String 
cesarString n = map (cesarChar n) 
1 comentario
0votos

Escrito por climens hace 6 años

Qué bonito. Esto me recuerda que tengo que aprender más sobre lenguajes funcionales. Podría probar a implementarlo en F#...

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.