
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