Cの2つのフラグメントを比較するためのCの一般的なプラクティスは、生成するアセンブリを確認することです。私は、GHCがある場合に生成されますどのようなコードを知りたいと思った:ghcで生成されたコードを比較します
afmap :: Functor f => (a -> b -> c) -> f b -> a -> f c
afmap fn fb a' = (fn a') <$> fb
と
afmap = flip . (((.).(.)) fmap ($))
だから私が試した:
多かれ少なかれ読めないコードを生成した(予想通り)$ ghc -S test.hs -o test.S
を。
ghcがコードを最適化する方法を評価する正しい方法(ある場合)は何ですか?
私は生産されたコアを見ます。見て[ここ](http://stackoverflow.com/questions/6121146/reading-ghc-core) – pdexter
興味深い答え。記録のために、おそらく私の質問への答えは[ghc-core](http://hackage.haskell.org/package/ghc-core)にあります。 – fakedrake
これは素晴らしいツールです – pdexter