5

ProblemGenerowanie kodu końcowy z szablonu kod Haskell

Czy to możliwe, aby wygenerować „czysty” kod Haskell z jednego szablonu tym funkcje Haskell?

Chcę uzyskać kod, w którym wszystkie hacje i spawy szablonów Haskell są rozszerzane? (W celu zasilania go w innym Haskell kompilator (szybciej), która jeszcze nie obsługuje szablon Haskell).

Przykład

moduł TupleReplicate:

tupleReplicate n = do 
    id <- newName "x" 
    return $ LamE ([VarP id]) (TupE $ replicate n $ VarE id) 

główny:

main :: IO() 
main = do 
    print $(tupleReplicate 3) "x" 
    return() 

można rozszerzyć do:

main :: IO() 
main = do 
    print (\x->(x,x,x)) "x" 
    return() 

Odpowiedz

0

Najprostszym sposobem jest kompilacja (lub interpretacja w GHCi) za pomocą -ddump-splices.

+2

O ile mi wiadomo, '-ddump-splices' NIE generuje działającego kodu Haskella. –