1votos

Errores de Ortografía en Haskell

por josejuan hace 2 años

Obtenemos el grupo cíclico y de ahí, saltamos 32 para pasar de un "case" a otro "case".

Realiza un programa que cambie letras mayúsculas por minúsculas y viceversa.

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
29
30
import Data.Char (chr, ord) 
 
-- tenemos: .... A B C ... X Y Z ... a b c ... x y z ...... 
-- por tanto         |                   | 
--                   +-------- 32 -------+ 
-- 
-- y de ahí, el grupo cíclico y la distancia 32 para pasar de uno a otro 
-- 
-- es decir 
-- 
--      swapChar c = chr $ (ord c + 32 - ord 'A') `mod` (ord 'z' - ord 'A' + 7) + ord 'A' 
-- 
-- y si queremos reducir nosotros las constantes (y no dejárselo al 
-- compilador) queda: 
 
swapChar c = chr $ (ord c - 33) `mod` 64 + 65 
 
swapWord = map swapChar 
 
 
{- 
 
-- Ejemplo 
> swapWord ['A'..'Z'] 
"abcdefghijklmnopqrstuvwxyz" 
> swapWord ['a'..'z'] 
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
 
-} 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.