我想在一个元素和字符串元组的列表中合并,每个char与该元素一起。
例如:[[True,“ xy”),(False,“ abc”)]-> [[True,'x'),(True,'y'),(False,'a'),(False, 'b'),(False,'c')]
我确实有解决方案,但我想知道是否有更好的解决方案:
concatsplit :: [(a,[b])] -> [(a,b)]
concatsplit a = concatMap (\(x,y)-> concatsplit' (x,y)) a
concatsplit' :: (a,[b]) -> [(a,b)]
concatsplit' y = map (\x -> ((fst y),x)) (snd y)
Run Code Online (Sandbox Code Playgroud) 当您使用文件夹在列表中添加数字时,它会起作用:
sumIntegers :: [Integer] -> Integer
sumIntegers xs = foldr (+) 0 xs
Run Code Online (Sandbox Code Playgroud)
但是减法的工作方式不同,因为减号minus =加号。[2,3,4,5]就像:2-3 + 4-5。
subtractNums' :: Num a => [a] -> a
subtractNums' xs = foldr (-) 0 xs
subtractNums :: Num a => [a] -> a
subtractNums [] = 0
subtractNums (x:xs) = x - subtractNums xs
Run Code Online (Sandbox Code Playgroud)
必须更改什么?先感谢您