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