2017-10-02 2 views
1

Je ne comprends pas comment je peux créer un exemple avec le chronomorphisme. Je connais l'hylomorphisme (cata, ana) aussi je connais environ histo et futu. Mais je ne réalise pas d'exemple pour le chronomorphisme (peut-être un comportement comme dans Tardis monad).Un exemple pour le chronomorphisme

lien https://github.com/ekmett/recursion-schemes/issues/42

également porté Ce n'est pas lié à Histomorphisms, Zygomorphisms and Futumorphisms specialised to lists car ne possède quelques exemples avec chronomorphism.

+0

peut-être mettre la question à [email protected] peut aider – palik

+0

voir aussi https://stackoverflow.com/a/37002861/2789312 – palik

+1

https://gist.github.com/danidiaz/e5debcaf531838eb6e2afd3ef3b34d60 – danidiaz

Répondre

0

La plus grande utilisation des chronomorphismes consiste probablement à réduire un arbre de syntaxe nommé. En particulier, vous pouvez vous référer aux noms qui n'ont pas encore été traités ainsi que les noms qui ont déjà été traités .

Une autre chose que vous pouvez faire avec les chronomorphismes est le dynamorphisme de réécriture! Vous pouvez en savoir plus sur les dynamiques here. Un des exemples qu'ils citent sont les chiffres catalans. Je l'ai traduit à Haskell ci-dessous. Vous pouvez également trouver this utile. Il a un exemple qui utilise un futumorphisme pour construire un arbre et un catamorphisme pour le démolir (bien que ce soit occlus). Bien sûr, cette carte est en fait une autre spécialisation du chronomorphisme.

+0

Désolé, mais votre code ne fonctionne pas. Pourriez-vous s'il vous plaît fournir une version de travail? – xgrommx