From what I've read, conditionals (like the cond statement in lisp) do not need to be primitive if normal order evaluation is used.
Using lambda calculus and normal order evaluation, how can you emulate if and cond statements?
(cond (<p1> <e1>)
(<p2> <e2>)
...
(<pn> <en>))
(if <predicate> <consequent> <alternative>)
References to SICP are welcome, though a simpler example would be helpful.
(Definitions of cond and if taken from Section 1.1.6 of SICP)