Haskellで一定の宣言があります-これを事前に評価するように強制できますか?おおよそ次のようなコードが表示されています。
myList = [(a, b), (c, d)]
...
map (f . fst) myList
プロファイルを作成するときは、fst
通話に時間がかかります(1億6800万回の通話があります)。のバイナリ表現myList
は非常に小さく、たとえば、[これがCプログラムの場合]グローバルメモリにコピーできます。-O3 -optc-O3
もちろんコンパイルしています。
どうもありがとう!
カスタムタイプのLiftインスタンスの生成
sclvの回答で呼び出しに指定される式lift
は、Liftのインスタンスである必要があります。th-lift
カスタムデータ型のLiftインスタンスを生成するという名前のライブラリがあります。そのパッケージのドキュメントを参照してください。