有没有办法让 Haskell 在运行时扩展某些 thunk。例如,说我有
--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。