Так что, я думаю, вы хотите преобразовать [74,33,105,57,33,117,112,70,111,118,110]
в строку, переведя ее на одну позицию, так что она становится "I h8 toEnum"
не так ли?
Итак:
map toEnum [74,33,105,57,33,117,112,70,111,118,110]
является типом String, поэтому, когда вы применяете к нему map (-1)
, вы на самом деле пытаетесь вычесть Int из Char, и это неправильно!
Во-вторых, map (-1)
является неправильным выражением, поскольку haskell понимает -1 как действительное число минус один , а не функцию вычитания
Принимая это во внимание, ваш код должен быть:
decodeROT = map toEnum (map ((+) (-1)) [74,33,105,57,33,117,112,70,111,118,110])
Что можно кратко записать как
decodeROT :: String
decodeROT = map (toEnum . (+) (-1)) [74,33,105,57,33,117,112,70,111,118,110])
Привет