撰寫一個程式,在無限回圈中讀取文本,將每個單詞都翻轉過來,然后作為文本重新組合在一起。如果輸入為空,程式應該中止,停止。為此,請撰寫一個reverseWords::String -> String執行反轉作業的函式。
例如:
reverseWords "Hello World, 123" -> "olleH ,dlroW 321"
我的代碼
reverseWords :: String -> String
reverseWords = unwords . reverse . words
不作業
uj5u.com熱心網友回復:
該函式reverse反轉整個串列,因此您以相反的順序獲取單詞。相反,您想要的是分別反轉每個元素,可以使用以下方法修復map:
reverseWords = unwords . map reverse . words
uj5u.com熱心網友回復:
如果您需要保留除 之外的空格字符' ',那么事情會變得有些棘手。幸運的是,該split軟體包可以提供幫助。
import Data.List.Split
import Data.Char
reverseWords :: String -> String
reverseWords = concatMap reverse . split (whenElt isSpace)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/416355.html
標籤:
