Czy istnieje sposób na uzyskanie informacji o liczbie linii/śledzeniu w Haskell?Odpowiednik Haskella dla C's __LINE__
(jak C na __LINE__
makro lub Pythona traceback.extract_stack()
)
To byłoby obsługi dla mnie za napisanie programu Haskell, który generuje kodu C++, który będzie zanotowana z uwagi mówienia która linia Haskell jest odpowiedzialny za którym C++ linii.
Haskell przykład:
LINE "#include <foo.h>" -- this is line 12
: INDENT "void Foo::bar() {" "}"
[ LINE $ "blah(m_" ++ x ++ ", \"" ++ x ++ "\");"
| x <- ["Potato", "Avocado"]
]
wygeneruje ten kod C++:
#include <foo.h> // gen.hs:12
void Foo::bar() { // gen.hs:13
blah(m_Potato, "Potato"); // gen.hs:14
blah(m_Avocado, "Avocado"); // gen.hs:14
} // gen.hs:13
@dons: Awesome! Używam go, a także zmieniłem fragment kodu powyżej, aby odzwierciedlić wygląd tego rozwiązania. Wygląda dobrze! – yairchu