leetcode 40. Combination Sum2

Run Settings
LanguageHaskell
Language Version
Run Command
import Data.List cal :: [Int] -> Int -> [[Int]] cal xs 0 = [[]] cal xs s = if sum xs < s then [] else nub $ map sort $ concat [ map (x:) $ cal (delete i ys) (s - x) | (x, i) <- zip ys [0..] ] where ys = [ x | x <- xs, x <= s ] main = do putStrLn $ show $ cal [10, 1, 2, 7, 6, 1, 5] 8 putStrLn $ show $ cal [2, 5, 2, 1, 2] 5 putStrLn $ show $ cal [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 27
Editor Settings
Theme
Key bindings
Full width
Lines