Haskell:单词,单词分隔符

问题描述:

有没有什么办法可以在haskell中为wordsunwords提供一个分隔符,使它与python中的split和join相似?Haskell:单词,单词分隔符

不,但它们分别只是Data.List.breakData.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 
+0

如果仅仅是因为它已经过去了我的睡前时间,那么我会留下版本分割成字符串或几个字符中的任何一个字符作为读者的练习。 :)但是我会注意到,你需要的所有工具都在'Data.List'中,并且多字符连接已经存在,就像单字符连接一样。 – geekosaur 2011-04-02 06:33:35

+1

另请参阅'intercalate'代替“intersperse”的多字符分隔符。 – luqui 2011-04-02 18:20:19

+1

你的'pythonicSplit'不正确。在第一个单词之后,它生成一个无限的空字符串列表 – newacct 2011-04-04 06:55:05

也请看看和煦的包分裂。它为各种分割提供了一个模块Data.List.Split

TextsplitOn & intercalate这相当于Python的split & join