5
有沒有辦法在Haskell中獲取行號/追蹤信息?Haskell相當於C的__LINE__
(如C的__LINE__
宏或Python的traceback.extract_stack()
)
這將是使用對我來說寫一個生成的C++代碼,這將有意見,說明哪哈斯克爾行負責其C++線上譜寫的Haskell程序。
哈斯克爾例如:
LINE "#include <foo.h>" -- this is line 12
: INDENT "void Foo::bar() {" "}"
[ LINE $ "blah(m_" ++ x ++ ", \"" ++ x ++ "\");"
| x <- ["Potato", "Avocado"]
]
會產生這樣的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:太棒了!我現在正在使用它,並且還更改了上面的代碼片段以反映此解決方案的外觀。看上去不錯! – yairchu 2010-02-23 21:59:37