Help for this page

Select Code to Download


  1. or download this
        change _      0  = [[]]
        change []     _  = fail "can't make change"
        change (c:cs) n
           | c > n       = change cs n
           | otherwise   = map (c:) (change (c:cs) (n-c)) ++ change cs n
    
  2. or download this
        > change [5,2] 16
        [[5,5,2,2,2],[2,2,2,2,2,2,2,2]]
    
  3. or download this
        quickchange cs n = listToMaybe (change cs n)
    
    ...
    
        > quickchange [7] 16
        Nothing
    
  4. or download this
        > :m +Data.Ratio
        > quickchange [1%2, 1%3] (10%6)
        Just [1%2, 1%2, 1%3, 1%3]