2017-12-25 162 views
5

W yesod book znajduje się ustęp:Co to jest introspekcja kodu w haskell?

Szablon Haskell jest zasadniczo Haskell, który generuje Haskell Abstract Syntax drzewo (AST).

W rzeczywistości jest więcej mocy w TH, ponieważ może on rzeczywiście introspekować kod. Nie używamy tych urządzeń w Yesod.

Co to znaczy introspekcja kodu i co można zrobić z tą funkcją?

+0

Masz na myśli [tę książkę] (https://www.yesodweb.com/book)? Może dodać link do twojego pytania? – jjj

Odpowiedz

8

Kod Haskella szablonu w Yesod służy wyłącznie do generowania kodu. W tym sensie jest to ścisły zamiennik dla karty katalogowej. Zamiast używać szablonu Haskell, moglibyśmy ręcznie napisać transformację ze składni pliku trasy do kodu, który należy napisać ręcznie, a samemu można napisać odpowiedni kod.

Przy pomocy introspekcji, możesz spojrzeć na istniejące informacje, które posiada kompilator i podejmować decyzje. Na przykład możesz wyszukać wszystkie wystąpienia egzemplarza typograficznego Show i utworzyć z tą listą String. Takie podejście może być przydatne w niektórych przypadkach, takich jak automatyczne generowanie zestawu testów. Komentarz w tej książce mówi, że Yesod nigdy tego nie robi.