実行時に 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 を使用しています。