use*_*850 1 string haskell char
我正在尝试编写表单的函数
f :: String -> [String]
f str = ...
Run Code Online (Sandbox Code Playgroud)
返回通过从中删除一个字符而形成的所有字符串的列表str.例如:
ghci> f "stack"
["tack","sack","stck","stak","stac"]
Run Code Online (Sandbox Code Playgroud)
因为String并且[Char]是同义词,我可以使用索引,但我知道你应该避免在Haskell中这样做.除了使用索引之外还有更好的方法吗?
您可以像这样使用递归:
f :: [a] -> [[a]]
f [] = []
f (s:ss) = ss : map (s:) (f ss)
Run Code Online (Sandbox Code Playgroud)