Advertisement
Guest User

Untitled

a guest
Oct 8th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Gabe Schoenbach
  2.  
  3. -- | A module for learning about ADTs
  4.  
  5. module ADT where
  6.  
  7.   import Prelude
  8.  
  9.   -- Exercise 3.1
  10.  
  11.   -- | The collatz function defined with guards and then with if/then/else
  12.  
  13.   collatz :: Integral n => n -> n
  14.   collatz n
  15.     | n == 1    = 1
  16.     | even n    = 1 + collatz (n `div` 2)
  17.     | otherwise = 1 + collatz (3*n + 1)
  18.  
  19.   collatz' :: Integral n => n -> n
  20.  collatz' n = if n == 1
  21.                then 1
  22.                else if even n
  23.                     then 1 + collatz' (n `div` 2)
  24.                    else 1 + collatz' (3*n + 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement