2011-04-02 93 views

回答

4

不,但它們分別只是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

11

也請看看和煦的包分裂。它爲各種分割提供了一個模塊Data.List.Split

相關問題