我的任務是撰寫一個 Haskell 程式,它會提示用戶輸入一個字串,然后程式將為每個字母分配一個數字(例如 a = 1、d = 4、y = 25、z = 26)和然后它將對字串的總數求和。示例“Hi”將等于 8 9 或 17。我有一些事情要做第一部分,但前提是它必須全部大寫,但我仍然無法弄清楚如何將輸出串列求和。
import Data.Char
toOrder :: [Char] -> [Int]
toOrder str = map ((\x -> x - 64) . ord) str
想法?
uj5u.com熱心網友回復:
您可以使用toUpper正則化字符,并對ssum的串列求和Int:
import Data.Char (ord, toUpper)
main = print $ score "Hi" -- 17
score :: String -> Int
score = sum . map (subtract 64 . ord . toUpper)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/462848.html
標籤:哈斯克尔
