簡體   English   中英

打印出Haskell的評估(重寫)步驟,用於教育/學習目的。 可能嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM