ghcはC preprocessorを使える.となると,より一層強力なマクロを求めてBoost.Preprocessorを使ってみたくなるかもしれない.いや,やっぱそんなことないかもしれない. ともかくサンプルコード {-# LANGUAGE CPP #-} {-# OPTIONS_GHC -F -pgmF ./cpp.sh -I/usr/include #-} import Text.Printf #include <boost/preprocessor.hpp> #define FOLDL(op, e, ls) BOOST_PP_LIST_FOLD_LEFT(op, e, ls) #define ADD(d, x, a) BOOST_PP_ADD(a, x) main :: IO () main = do printf "line: %d\n" (__LINE__ :: Int) pr