Hoon101 Week 2 Assignment in "Haskell"
| README.md | ||
| week2.hs | ||
I'm so sorry
Hoon101's Week 2 Assignment in Haskell
Create a gate that takes a noun, checks if its a cell, and if not, checks if the atom is odd or even
Running
in ghci, load the file:
:load week2.hs
you can then run the program using the form
:t solution (nil :: X)
where X is either an atom or a cell, using the following syntax:
Atom: Using Church Encoding with (S n) and Z, ie (S (S (S Z))) is the atom 3
Cell: Using Cons x xs and Nil, ie (Cons (S Z) (Cons Z Z)) is the cell [1 [0 0]]
Example
*Main> :load week2.hs
[1 of 1] Compiling Main ( week2.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t solution (nil :: (S (S (S (S Z)))))
solution (nil :: (S (S (S (S Z)))))
:: IsEvenAtom
*Main> :t solution (nil :: (S (S (S (S (S Z))))))
solution (nil :: (S (S (S (S (S Z))))))
:: IsOddAtom
*Main> :t solution (nil :: (Cons (Cons (S Z) (S (S Z))) (Cons (S (S (S Z))) (S (S (S (S Z)))))))
solution (nil :: (Cons (Cons (S Z) (S (S Z))) (Cons (S (S (S Z))) (S (S (S (S Z)))))))
:: IsCell