Computation by ÒRewritingÓ
l
halve_all([2, 4, 6])
==>
l
[1 | halve_all([4, 6])]
==>
l
[1 | [2 | halve_all([6])] ]
==>
l
[1 | [2 | [3 | halve_all([ ])] ] ]
==>
l
[1 | [2 | [3 | [ ] ] ] ]
==
l
[1 | [2 | [3] ] ]
==
l
[1 | [2, 3] ]
==
l
[1, 2, 3]