我已经看到有关缺少拆分功能的其他线程,但我不想偷看,因为我这样做是为了学习目的并想弄清楚自己。所以这里是:
split :: Char -> String -> [String]
split c xs | null f = []
| otherwise = f : split c s'
where (f,s) = break (== c) xs
s' | null s = s
| otherwise = tail s
它似乎工作正常(请告诉我是否有任何问题)但是当我使用不在字符串中的拆分字符时,该函数返回一个包含原始字符串单个元素的列表,而我希望它返回一个空列表。我不知道该怎么做。
有任何想法吗?。