0
比方說,我有一個天真的實現功能如下:如何判斷在GHC中是否發生共同的子表達式消除?
quadratic a b c = (ans1, ans2)
where
ans1 = ((-b) + sqrt (b * b - 4 * a * c))/(2 * a)
ans2 = ((-b) - sqrt (b * b - 4 * a * c))/(2 * a)
有多個相同的子表達式。如果不閱讀核心知識,就可以知道是否發生了常見的子表達式刪除以及這種情況的哪些部分?
我認爲「通過閱讀核心」就是答案。你爲什麼不想這樣做?你可以通過從'Debug.Trace'插入函數來猜測,但我不會依賴它。 – jberryman
@jberryman是否有經驗法則表明可能或不可能優化哪些代碼? – rityzmon
不相關的,但非確定性是用列表模型,而不是元組。 '二次方a c c = [ans1,ans2]其中...' – chepner