3

実行時に Haskell に特定のサンクを展開させる方法はありますか。たとえば、私が持っているとしましょう

--Purposely inefficient code for demonstration
fib 0=0
fib 1=1
fib n=fib n=fib (n-1) + fib (n-2)
goldRatio=fib 100 / fib 101

goldRatioコンパイル時に評価するにはどうすればよいですか。たとえば、

{-# EVALUATE goldRatio #-}

頭が弱くてもいいしControl.Deepseq.force、あとはなんとかなる。テンプレート Haskell でできると聞いたのですが、よくわかりません。

注: 現在 GHC を使用しています。

4

1 に答える 1