I'm nitpicking here, but it can be improved a bit

doubleEveryOther :: [Integer] -> [Integer]
doubleEveryOther [] = []
doubleEveryOther [x] = [x]
doubleEveryOther (x:y:xs) = x : 2 * y : doubleEveryOther (xs)

2015-05-14 8:48 GMT+02:00 Nishant <nishantgeek@gmail.com>:
This will double very second digit in list.  To do from right, just reverse the list first and then apply doubleEverySecond and then reverse back. 



doubleEveryOther :: [Integer] -> [Integer]

doubleEveryOther [] = []
doubleEveryOther (x : []) = [x]
doubleEveryOther (x : y : []) = x : (2 * y) : []
doubleEveryOther (x:y:xs) = x : (2 * y) : doubleEveryOther (xs)


On Wed, May 13, 2015 at 10:22 PM, Roelof Wobben <r.wobben@home.nl> wrote:
Hello,

I try to make make the assignment of CIS194 where I must multiply every  second item from the right by 2

So I thought this could be working :

-- | Convert a digit to a reversed list for example 123 becomes [3,2,1]
revtoDigits :: Integer -> [Integer]
revtoDigits number
  | number <= 0 = []
  | number > 0 = number`mod` 10 : revtoDigits (number `div` 10)

-- | Convert a digit to a list for example 123 becomes [1,2,3]
toDigits :: Integer -> [Integer]
toDigits number
  | number <= 0 = []
  | number > 0 = toDigitsAcc [] number

toDigitsAcc:: [Integer] -> Integer -> [Integer]
toDigitsAcc acc number
  | number <= 0  = acc
  | number > 0 =  toDigitsAcc ((number `mod` 10) : acc) (number `div` 10)

doubleEveryOther :: [Integer] -> [Integer]
doubleEveryOther list  = case (length list) `mod` 2 of 0 -> doubleEveryOther [] = []
doubleEveryOther (x:y:xs) = x*2 : y : xs
                              (length list) `mod` 2 of 0 -> doubleEveryOther [] = []
doubleEveryOther (x:y:xs) = x : y*2 : xs


-- | The main entry point.
main = print $ doubleEveryOther [1,2,3]


but apperantly you cannot have pattern matching after a case statement because I get a error on the =  of a empty list

Roelof


---
Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware.
http://www.avast.com

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners



--
Nishant

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners




--
Jonathan Skårstedt
Bergsgårdsgärdet 39
Lgh 1108
424 32 Göteborg
Mobil: 073 - 76 20 20 7