Функция ord
в модуле Data.Char
дает целочисленный код для каждого символа. Учитывая это, это будет функция, которую вы ищете:
import Data.Char
replace :: Char -> Int
replace c = ord c - ord 'A' + 1
Я не уверен, вернет ли ord c
код ASCII для символа, или кодовую точку Unicode, или если результат зависит от машины. Чтобы абстрагироваться от этого, мы просто вычитаем код для 'A'
из результата и добавляем 1
, потому что мы хотим, чтобы алфавит начинался с 1
вместо 0
.
Простой способ найти такую функцию - Hoogle .
Там вы можете искать функции в стандартных пакетах Haskell, вводя их тип. В этом случае ord
является вторым результатом при поиске Char -> Int
.