Hello All!<br><br>Addison-Wesley book and in Clean 2.1 Specification state that selector patterns are translated to projection functions. But (without strictness analysis and using small heap) test1 terminates ok but test2 fails with out of heap error. How it must be explained in semantics?<br>
<br>Start = test4 [0..100*1000*1000]<br><br>test1 xs = case ab of (_,_) -&gt; n<br>where<br>    ab = decouple1 xs<br>    (a,b) = ab<br>    n = xsum 0 a xs<br><br>test2 xs = case ab of (_,_) -&gt; n<br>where<br>    ab = decouple1 xs<br>
    a = first ab<br>    n = xsum 0 a xs<br><br>decouple1 [x:xs] = (x,xs)<br><br>first (a,b) = a<br><br>xsum 0 a xs = xsum 1 a xs<br>xsum n a [x:xs] = xsum (n+1) a xs<br>xsum n a [] = a + n<br><br><br><br>