Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 18th, 2012  |  syntax: None  |  size: 0.45 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. add1 xs n c
  2.         | c < 0 = reverse $ add1 (reverse xs) n (abs c)
  3.         | c > 0 = add1' xs n c
  4.         | c == 0 = add1' xs n (length xs)
  5.         where
  6.                 add1' [] _ _ = []
  7.                 add1' xs n 0 = xs
  8.                 add1' (x:xs) n c
  9.                         | x == n = x+1:(add1' xs n (c-1))
  10.                         | otherwise = x:add1' xs n c
  11.  
  12. -- Below are the test runs
  13. param = [1,4,1,5,1]
  14.  
  15. main :: IO ()
  16. main =  do
  17.         putStrLn . show $ param
  18.         putStrLn . show $ add1 param 1 0
  19.         putStrLn . show $ add1 param 1 2
  20.         putStrLn . show $ add1 param 1 (-2)