问题是:编写一个将从字符串中删除前导空格的函数.示例:cutWhitespace [" x","y"," z"]预期答案:["x","y","z"]
继承人我所拥有的:
cutWhitespace (x:xs) = filter (\xs -> (xs /=' ')) x:xs
Run Code Online (Sandbox Code Playgroud)
["x", " y"," z"]输入时返回[" x"," y", " z"].为什么忽略第二和第三个字符串中的空格,我该如何解决?
我们被允许使用高阶函数,这就是我实现过滤器的原因.
问题是:定义一个shuffle :: Int -> [a] -> [a]采用自然数n和偶数列表的函数,然后拆分然后将列表重复n次.例如,shuffle 2 [1,2,3,4,5,6] = [1,5,4,3,2,6].我有一个相应的函数riffle,但我不知道如何拆分列表.
我的浅滩功能是:
riffle :: [a] -> [a] -> [a]
riffle [] ys = ys
riffle xs [] = xs
riffle (x:xs)(y:ys) = x : y : riffle xs ys
Run Code Online (Sandbox Code Playgroud)
我开始洗牌,我想,这就是我所拥有的:
shuffle :: Int -> [a] -> [a]
shuffle [] = []
shuffle a xs = (length xs) 'div' a
Run Code Online (Sandbox Code Playgroud)
我试图列出一个列表并分成指定为"a"的部分.我是Haskell的新手,我仍然不确定它是如何工作的:所有的帮助都表示赞赏.