title: What is a catamorphism and can it be implemented in C# 3.0?
body: <p>I'm trying to learn about catamorphisms and I've read <a href="http://en.wikipedia.org/wiki/Catamorphism" rel="noreferrer">the Wikipedia article</a> and the first couple posts in <a href="http://lorgonblog.spaces.live.com/Blog/cns!701679AD17B6D310!256.entry" rel="noreferrer">the series of the topic for F#</a> on the <em>Inside F#</em> blog. </p>
  
  <p>I understand that it's a generalization of folds (i.e., mapping a structure of many values to one value, including a list of values to another list). And I gather that the fold-list and fold-tree is a canonical example.</p>
  
  <p>Can this be shown to be done in C#, using LINQ's <code>Aggregate</code> operator or some other higher-order method?</p>