<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">> catalanNumbers :: Num a => [a]<br>> catalanNumbers =<br>>   let xs = 1 : PowerSeries.mul xs xs<br>>   in  xs</div><div dir="ltr"><br></div><div>This example of a generating function come to life as a program deserves to be better known. Bill Burge presented it 50 years ago in "Recursive Programming Techniques", Addison-Wesley, 1975. I revisited it in "Power series, power serious", JFP 9 (1999) 323-335, where, with overloadied arithmetic, it became</div><div>      ts = 1 : ts^2</div><div>The technique is laid bare in ten one-liners at <a href="https://www.cs.dartmouth.edu/~doug/powser.html">https://www.cs.dartmouth.edu/~doug/powser.html</a>.</div><div><br></div><div>Doug</div></div></div>
</div></div>