
13 Feb
2008
13 Feb
'08
3:41 p.m.
tricky 0 = constant 0 tricky d = add e0 e1 where (e0, e1) = fork (tricky (d-1))
Oops, I just realised that this isn't a very good example of expressible sharing! The problem is that it doesn't take any inputs, and expressible sharing just collapses (partially evaluates) operators when they are applied to constants. A better example would be something that takes an input, such as distrib a [] = [] distrib a (x:xs) = (a0, x) : distrib a1 xs where (a0, a1) = fork a Matt.