Skip to content

Instantly share code, notes, and snippets.

@yasar11732
Last active December 9, 2019 15:21
Show Gist options
  • Select an option

  • Save yasar11732/78005ddd663903eeed55e8a76e6f3070 to your computer and use it in GitHub Desktop.

Select an option

Save yasar11732/78005ddd663903eeed55e8a76e6f3070 to your computer and use it in GitHub Desktop.
toDigits :: Integer -> [Integer]
toDigits n
| n <= 0 = []
| n < 10 = [n]
| otherwise = (toDigits (n `div` 10)) ++ [n `mod` 10]
toDigitsRev :: Integer -> [Integer]
toDigitsRev n = reverse $ toDigits n
doubleEveryOther' :: [Integer] -> [Integer]
doubleEveryOther' [] = []
doubleEveryOther' [x] = [x]
doubleEveryOther' (x:y:zs) = [x, 2*y] ++ doubleEveryOther' zs
doubleEveryOther :: [Integer] -> [Integer]
doubleEveryOther n = reverse (doubleEveryOther' (reverse n))
sumDigits :: [Integer] -> Integer
sumDigits n = sum (map sum (map toDigits n))
validate :: Integer -> Bool
validate n = (sumDigits (doubleEveryOther (toDigits n))) `mod` 10 == 0
type Peg = String
type Move = (Peg, Peg)
hanoi :: Integer -> Peg -> Peg -> Peg -> [Move]
hanoi 0 _ _ _ = []
hanoi 1 a b _ = [(a,b)]
hanoi 2 a b c = [(a,c),(a,b),(c,b)]
hanoi n a b c = (hanoi n-1 a c b) ++ [(a,b)] ++ (hanoi n-1 c b a)
@yasar11732
Copy link
Copy Markdown
Author

LogAnalysis.hs:7:1: error: Parse error in pattern: parseMessage' | 7 | parseMessage' ("E"):severity:timestamp:rest = LogMessage (Error (read severi ty)) timestamp (unwords rest) | ^^^^^^^^^^^^^^^^^^^ Failed, one module loaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment