因此,我要为未来教育自己
firstLetter :: IO String
firstLetter = do
x <- getChar
if (x == ' ')
then return (show x)
else firstLetter
因此,它将获得行,直到第一行以空字符开头
我该怎么办,所以如果出现空行,它将返回所有
head(x)
例如:
Liquid
Osone
Liquid
(empty line)
returns
"LOL"
最佳答案
试试这个。库函数lines
将为您将输入分为几行,因此剩下的就是从列表中每个字符串中提取第一个字符,直到一个字符串为空。空字符串只是一个空列表,因此您可以检查以结束对字符串列表的递归。
firstLetters :: [String] -> String
firstLetters (x:xs)
| null x = []
| otherwise = head x : firstLetters xs
main = do
contents <- getContents
putStrLn . firstLetters . lines $ contents
关于haskell - Haskell前字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6344754/