はい、これらは:
{-#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))
はい、私はそれらが(HHOS)ジョークであることを知っています。私は単純なハック値の実際の例を探していますが、最後に、「これはXYZを表現する慣用的な方法です」と言ってwikiに追加します。あなたが解決策を思い付かなかった場合、私はこれに報奨金を出します。あなたが彼らが何であるかについて完全に迷っているなら、エドワードはredditに短い説明を投稿しました。
適格な回答は:
少なくともリモートで、理論的には計算上有用なことを行う。つまり、減少する答え
id
は出て行きます。スキームのすべての機能を使用し、id、const、または同等のものを渡しません。
単純なバニラ折りなどで表現することはできませんので、単に
product
曲がりくねった方法で実装しないでください。
ボーナスポイントは以下に与えられます:
よく知られている問題またはアルゴリズム
獲得する異常な方法でそれぞれ解決、表現
明快さおよび/またはパフォーマンス
および/またはハック値
および/またはlulz、おおよその順序で、および
上位の回答(そう、民主主義)
以下のエドワードの回答にも注意してください。使用するZHPMの実装は任意です。
a
何でもかまいませんので、入力データの評価に基づいてミサイルを戦略的に発射するIO値を自由に構築してください。
IO
スタックに含まれていれば、SimonPJの有名なlaunchMissles
機能を使用できたはずです。しかし、私はそのすべての超純粋な抽象的なナンセンスのすべての要点は、そのようなことの可能性を回避することであると思います。