Haskell:单词,单词分隔符
答
不,但它们分别只是Data.List.break
和Data.List.intersperse
的应用程序(优化版本)。
pythonicSplit :: String -> Char -> [String]
pythonicSplit "" _ = []
pythonicSplit s c = let (r,rs) = break (== c) s
in r : pythonicSplit rs c
pythonicJoin :: [String] -> Char -> String
pythonicJoin ss c = intersperse c ss -- or: flip intersperse
如果仅仅是因为它已经过去了我的睡前时间,那么我会留下版本分割成字符串或几个字符中的任何一个字符作为读者的练习。 :)但是我会注意到,你需要的所有工具都在'Data.List'中,并且多字符连接已经存在,就像单字符连接一样。 – geekosaur 2011-04-02 06:33:35
另请参阅'intercalate'代替“intersperse”的多字符分隔符。 – luqui 2011-04-02 18:20:19
你的'pythonicSplit'不正确。在第一个单词之后,它生成一个无限的空字符串列表 – newacct 2011-04-04 06:55:05