[英]Printing out Haskell's evaluation (rewriting) steps for educational/learning purposes. Is it possible?
我通過使用書中的一個例子來描述這個問題。
在Simon Thompson的書“HASKELL函數式編程工藝”(第82頁)(見下圖)中顯示了fac 4
的評估步驟。
題:
有可能使用一些工具或一些“Haskell調試器”來寫出GHCi在評估fac 4
的價值時使用的評估步驟嗎?
優選地,以人類可讀的格式,用於教育和學習目的。
對每個評估步驟進行一些自動解釋也是很好的,例如在重寫步驟中使用了哪個等式。
我的主要目的是更深入地了解當我運行簡單的教育Haskell示例程序(如fac
)時如何執行重寫步驟。
有沒有辦法做到這一點 ? 如果有,怎么樣?
有一個名為Lambda bubble pop的工具,您可以在其中單擊表達式以查看表達式如何減少。 請注意,該工具僅支持整數和列表,但仍然是一個很好的教育工具。
實際工具的快照:
是和否。我還沒有看到一個工具,它在你的教科書中描述了這種逐行評估 - 主要是因為Haskell程序沒有“重寫”表達式。
但是,有一個工具可以逐步可視化Haskell的實際評估策略: ghc-vis
。 而不是僅僅評估的結果,就像在控制台上顯示它ghci
呢,它顯示未計算結果的圖形表示-你可以強制評估它咚由thunk的,直到你在原始的價值觀和結構到達。
作為它可以做什么的一個例子,這里的評估直到無限斐波那契序列的第三個列表成員:
評估0,1和1,列表的其余部分是回顧列表本身部分的thunk http://felsin9.de/nnis/ghc-vis/fib1.svg
資料來源: 項目網站的示例部分 。 你應該看看他們所有人!
這是一個非常有用且非常有用的功能 - 據我所知,它在任何地方都無法使用。 :-(
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.