Oui, ceux-ci :
{-#LANGUAGE TypeOperators, RankNTypes #-}
import Control.Morphism.Zygo
import Control.Morphism.Prepro
import Control.Morphism.Histo
import Control.Functor.Algebra
import Control.Functor.Extras
import Control.Functor.Fix
import Control.Comonad.Cofree
zygohistomorphic_prepromorphism
:: Functor f
=> Algebra f b
-> GAlgebra f (ZygoT (Cofree f) b) a
-> (f :~> f)
-> FixF f
-> a
zygohistomorphic_prepromorphism f
= g_prepro (distZygoT (liftAlgebra f) (distHisto id))
Oui, je sais que c'est une blague ( HHOS ). Je suis à la recherche d'un exemple concret de valeur de hack simple et enfin, mais non des moindres, de l'ajouter au wiki en disant "C'est la manière idiomatique d'exprimer XYZ". Je vais mettre une prime sur ce si vous négligez de trouver une solution. Si vous êtes complètement perdu sur ce dont ils parlent, Edward a publié une courte explication sur reddit.
Les réponses éligibles doivent:
faire quelque chose au moins à distance et théoriquement utile en termes de calcul. Autrement dit, les réponses qui se réduisent à
id
sont sorties.utiliser toutes les fonctionnalités du schéma, pas de passage de id, ou const, ou équivalent.
pas tout aussi bien exprimable par un simple pli vanille ou autre, alors ne vous contentez pas de mettre
product
en œuvre de manière sinueuse.
Des points bonus seront attribués à:
Problème ou algorithme bien connu
résolus, respectivement exprimés, d'une manière inhabituelle qui gagne
clarté et / ou performance
et / ou valeur de piratage
et / ou lulz, dans à peu près cet ordre, ainsi que
réponses de haut rang (yay démocratie)
Veuillez également noter la réponse d'Edward ci-dessous. Quelle implémentation ZHPM vous utilisez est votre choix.
a
peut être n'importe quoi, alors n'hésitez pas à construire une valeur IO qui lance stratégiquement des missiles en fonction d'une évaluation de vos données d'entrée.
IO
dans votre pile, nous aurions pu utiliser la célèbrelaunchMissles
fonction de SimonPJ . Mais je suppose que le but de toutes ces absurdités abstraites super-pures est d'éviter la possibilité de telles choses.