Opiszę to pytanie, używając przykładu z książki.Drukowanie kroków Haskella do oceny (przepisywania) w celach edukacyjnych/edukacyjnych. Czy to możliwe?
W książce Simona Thompsona "HASKELL rzemiosło programowania funkcjonalnego" na stronie 82 (patrz zdjęcia poniżej) pokazano etapy oceny dla fac 4
.
PYTANIE:
Czy to możliwe, aby korzystać z niektórych funkcji lub jakiś „Haskell debugger”, który będzie pisać etapy oceny, które GHCi używa kiedy to ocenić wartość fac 4
?
Najlepiej w formacie czytelnym dla człowieka, do celów edukacyjnych i edukacyjnych.
Byłoby również dobrze mieć pewne automatyczne wyjaśnienie dla każdego etapu oceny, na przykład, które równanie zostało użyte w etapie przepisywania.
Moim głównym celem jest lepsze zrozumienie, w jaki sposób wykonywane są etapy przepisywania, gdy uruchamiam proste przykładowe programy edukacyjne Haskella (np. fac
).
Czy istnieje sposób, aby to zrobić? Jeśli tak, w jaki sposób?
[Prosta refleksja] (https://hackage.haskell.org/package/simple-reflect) może to zrobić. Ale podczas gdy jest to przydatne dla prostych rzeczy, takich jak listy i mapy, nie działa na wszystko. – genisage
możesz przekonwertować go na Prolog (zwariowany pomysł;) i [wyśledzić] (http://i.imgur.com/AKCFefx.png) tam ... (pokazano graficzny debugger SWI-Prolog). Działa dla najprostszych rzeczy. BTW książka pomija kilka kroków (wartości nie są wymuszane od razu, ale tylko w porównaniu z zero). Prolog - ponieważ jego zasady są również oparte na klauzulach. –