Talk:Anamorphism

Latest comment: 12 years ago by Cardiffman in topic Working to clarify

Example edit

An example is missing. --Tillmo (talk) 12:59, 6 April 2008 (UTC)Reply


It seems that both Haskell definitions (unfold and ana) are identical - I think the 1st one should be removed. Also, I see no clear definition of anamorphism here - the article says only that it's some generalization of some undefined unfolds. Anybody knows the definition precisely? 91.189.18.133 (talk) 23:30, 19 September 2009 (UTC)Reply

Too much unexplained jargon edit

If the terms "unfolds", "folds", "final coalgebras", "co-recursive analogues of recursive folds" were explained, it would do a lot to improve the readability of this article. -kotra (talk) 02:52, 13 May 2008 (UTC)Reply

I agree. The term "unfold" is especially critical, since the only thing that comes close to a definition of anamorphism is the following: "In functional programming, an anamorphism is a generalization of the list-producing unfolds." The page unfold redirects to this page, which makes this a cyclic definition. — Sebastian 22:50, 1 August 2009 (UTC)Reply

I noticed that no where is Anamorphism actually defined. It says that it is grounded in category theory, and that it is a generalization, but never actually says what it is. More than merely examples would be nice. —Preceding unsigned comment added by 199.46.245.232 (talk) 22:34, 20 November 2009 (UTC)Reply

I vote that since the computer scientists haven't been doing such a bang-up job of defining anamorphism, we go with the following: "in category theory, the concept of anamorphism denotes the unique homomorphism from one final coalgebra to some other algebra." In case you haven't noticed, it's the dual of the definition on the catamorphism page (pun intended.) Jwuthe2 (talk) 10:03, 15 October 2010 (UTC)Reply

Working to clarify edit

I made a stab at improving the article by cutting out the duplicated code, defining the term in the preamble, and generally trying to hone the prose. Perhaps I've not gone far enough in removing jargon, but I hope this is a step forward.

There seems to be a little confusion about what exactly the term should refer to, and I'd like to know what others think. Meijer, Fokkinga and Paterson use the terms to refer to the functions which are defined using this pattern. For example, they say that the zip function is an anamorphism. But I think of the "unfold" function for each data type as its anamorphism, and this view seems to make the writing easier. More to the point, the best way to capture the idea is as a higher-order function. It is a nuisance trying to explain that "functions defined by this skeleton, or which could be defined according to this skeleton, are anamorphisms."

So, I propose that this article (and that for catamorphisms) treat the fold/unfold operators themselves as the {ana,cata}morphisms. Any objections or support for that? Ezrakilty (talk) 05:15, 7 March 2010 (UTC)Reply

I came to this article to read it and learn. When I got to the bottom I thought that the STUB notation at the bottom was unfair. And that comes from a guy who got a D in the highest Math course he took. I also observed that much of the editorial criticism above, such as the circular reference in the use of the term unfold as a link, has been addressed by now. I think your efforts are paying off.
Would it be putting too fine a point on things to refer to scalars or reals as specific examples in here?
Cardiffman (talk) 18:24, 18 June 2011 (UTC)Reply