0votos

CRIPTOGRAFIA EN C++ en Haskell

por josejuan hace 4 años

Una (éste desafío es fácil, no normal).

Codificar EN C++ intercambiando letras

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import Data.List 
import Data.Maybe 
import Control.Applicative 
 
-- Dado un texto y la clave, desencripta 
decodeRow dict = map (\c -> maybe c (dict!!) (elemIndex c ['A'..'Z'])) 
 
-- Dado un conjunto de textos y claves, desencripta todos 
decodeRows [] = [] 
decodeRows (x:y:rs) = decodeRow y x: decodeRows rs 
 
-- Dado un texto en el formato indicado, parsea y desencripta todos 
decodeInput = decodeRows . filter (not.null) . tail . lines 
 
-- Dado un archivo con contenido en el formato indicado, desencripta todos 
decodeFile filePath = decodeInput <$> readFile filePath 
 
 
 
 
 
-- Por ejemplo: 
main = decodeFile "d:\\projects\\haskell\\decodefoo.txt" >>= mapM_ print 
 
{- 
    "ACM CONTEST" 
    "THE SKY IS BLUE" 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.