<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Your talk has been on my youtube “watch later” for awhile, finally watched it!<div><br></div><div><div>Cheers,</div><div>Vanessa McHale<br><div><div><br></div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://youtu.be/q8hDDTA7HmY"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://youtu.be/q8hDDTA7HmY" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E6E6E6;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center" align="center"><img style="width:300px;filter:brightness(0.97);height:225px;" width="300" height="225" draggable="false" class="lp-rich-link-mediaImage" alt="hqdefault.jpg" src="cid:12C8BA38-911D-42B3-B55D-5902A6216C23"></td></tr><tr><td vertical-align="center"><table bgcolor="#E6E6E6" cellpadding="0" cellspacing="0" width="300" style="table-layout:fixed;font-family:-apple-system, Helvetica, Arial, sans-serif;background-color:rgba(230, 230, 230, 1);-apple-color-filter:initial;" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://youtu.be/q8hDDTA7HmY" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">Power series, power serious</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://youtu.be/q8hDDTA7HmY" style="text-decoration: none" draggable="false"><font color="#808080" style="color: rgba(0, 0, 0, 0.498039);">youtu.be</font></a></div></div></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br id="lineBreakAtBeginningOfMessage"><div><br><blockquote type="cite"><div>On Jan 20, 2025, at 8:54 AM, Douglas McIlroy <douglas.mcilroy@dartmouth.edu> wrote:</div><br class="Apple-interchange-newline"><div><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>
_______________________________________________<br>Haskell-Cafe mailing list<br>To (un)subscribe, modify options or view archives go to:<br>http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe<br>Only members subscribed via the mailman list are allowed to post.</div></blockquote></div><br></div></div></div></div></body></html>