risposta

19

Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire(PDF) dovrebbe aiutare pure. La notazione diventerà un po 'pelosa, ma leggendo alcune volte dovresti essere in grado di abbattere quella tua lista.

Inoltre, dai un'occhiata agli schemi di ricorsione (archived)blog post, il blogger ha in programma di presentarli tutti individualmente a breve, quindi ricontrollalo regolarmente - Immagino.

+0

Grazie, la descrizione del paramorfismo ci ha aiutato. – Fixpoint

+0

L'autore di quel post mi ha detto un giorno o due fa che sapeva che il suo blog non è al momento disponibile, ma che è in viaggio e non sarà in grado di fare nulla per un'altra settimana. – dfeuer

+0

ahh, è stato giù un po 'di tempo fa anche per un po' di tempo. In realtà avevo (a questo punto) pensato che l'avesse preso offline. grazie – nlucaroni

9

Inizia con l'apprendimento dei catamorfismi; quelli sono i più facili da capire. Ne conosci già uno: foldr!

Quindi andare per anamorfismi (unfoldr) e paramorfismi. Solo allora vai per gli altri articoli/documenti di Wikipedia; per allora saranno più facili da capire.

+2

Ho già afferrato cata, ana, hylo e meta, ecco perché non li ho citati in questione. :) Per il resto gli articoli di wikipedia non sono molto estesi o non esistono. – Fixpoint

10

Edward Kmett ha recentemente pubblicato uno Field Guide to recursion schemes, forse è d'aiuto?

+1

Sì, l'ho già letto. Un riassunto molto utile. – Fixpoint

+3

Felice di aiutare. La tua migliore scommessa potrebbe essere quella di iniziare da, ad esempio, il documento di dinamismo di Vene e Kabanov. Dal momento che motiva almeno l'uso di histo e dyna e da lì puoi capire futu. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.60.9336 –