2016-08-09 145 views
-2

Ich bin sehr neu in Haskell und möchte ein Programm machen, um Zeichen in einer Zeichenfolge in Zahlen zu verwandeln. Etwas wie folgt aus:Haskell - Verwandle Buchstaben in Zahlen

A = 06 
B = 07 
C = 08 
... Z 

So zum Beispiel:

Input: Hi 
Output: 14 15 

Wer weiß, wie ich über das tun dies gehen kann? Danke im Voraus.

+0

Seien Sie sicher, http://stackoverflow.com/tags/haskell/info – jberryman

Antwort

3

Ihre Zählung one off sein könnte

> import Data.Char(ord,toUpper) 
> map (\x -> ord (toUpper x) - ord 'A' + 6) "Hi" 
[13,14] 
+0

Dank zu lesen, das ist was ich brauchte. –

3

Sie suchen nach ord von Data.Char. Dieser Interpreter Code tut, was Sie brauchen:

import Data.Char 

toAscii :: [Char] -> [Int] 
toAscii str = map ord str 

Wenn Sie Buchstaben in Zahlen abbilden möchten, so dass zum Beispiel:

ghci> import Data.Char 
ghci> map ord "Hi" 
[72, 105] 

Sie eine Funktion aus dieser erstellen A=1 und z=58, Sie können dies tun:

import Data.Char 

toOrder :: [Char] -> [Int] 
toOrder str = map (\x -> x - 64) $ map ord str 
-- or using composition of `toAscii` 
toOrder str = map (\x -> x - 64) $ toAscii str