【发布时间】:2016-06-08 02:26:30
【问题描述】:
我正在编写一个 Haskell 程序作为学校的作业。这是一个英语约会程序,最终会导致与您的完美匹配的“聊天”。我希望聊天能够切换并用瑞典语书写,这意味着程序需要字母 å ä ö 的代码。我怎么做?
import Data.Char
kons = "qwrtpsdfghjklzxcvbnmQWRTPSDFGHJKLZXCVNM"
veral = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
gemen:: Char -> Char
gemen 'A' = 'a'
gemen 'B' = 'b'
gemen 'C' = 'c'
gemen 'D' = 'd'
gemen 'E' = 'e'
gemen 'F' = 'f'
gemen 'G' = 'g'
gemen 'H' = 'h'
gemen 'I' = 'i'
gemen 'J' = 'j'
gemen 'K' = 'k'
gemen 'L' = 'l'
gemen 'M' = 'm'
gemen 'N' = 'n'
gemen 'O' = 'o'
gemen 'P' = 'p'
gemen 'Q' = 'q'
gemen 'R' = 'r'
gemen 'S' = 's'
gemen 'T' = 't'
gemen 'U' = 'u'
gemen 'V' = 'v'
gemen 'W' = 'W'
gemen 'X' = 'x'
gemen 'Y' = 'y'
gemen 'Z' = 'z'
gemen _ = 'a'
dial = do
print "Hello, what's your name?"
name <- getLine
print ("Hi there " ++ name ++ "!")
print "Where do you live?"
place <- getLine
print ("Oh really " ++ name ++ ", so do I!")
print ("Do you wanna switch to swedish?")
svar <- getLine
if svar == "yes" then print ("Kanon, da gor vi det!") else print ("English is just as good!")
perify :: [Char] -> [Char]
perify xs
| (head (xs)) == 'P' = ", " ++ xs
| (head (xs)) `notElem` kons = ", P" ++ [(gemen (head (xs)))] ++ (tail (xs))
| otherwise = ", P" ++ (tail (xs))
【问题讨论】:
-
您需要密码是什么意思?你不能只用瑞典语写字符串吗?
-
您是否尝试过将它们包含在源代码中?
-
到目前为止,我已经更新了我的工作。我必须补充一点,我在这方面绝对是新手。我希望对话能够问“你想切换到瑞典语吗”,如果是,我需要帮助写一些东西,使瑞典语字符 å ä ö 成为可能。截至目前,例如 å 写为 \229.. 感谢您的关注!
-
您应该使用
putStrLn而不是print。详情请阅读GHC: Display of unicode characters -
谢谢大家,它有效!!!