在Frames library中,有一个readTable
功能,可根据CSV文件生成记录类型。
是否可以生成foreign import ccall unsafe "// c code" c_foo :: Int -> IO ()
之类的调用?
我尝试使用[d| ... |]
和[t| ... |]
quasiquoters完成此操作,但在两者中我都遇到了解析器错误。
答案 0 :(得分:1)
是的,这是可能的。您看到的错误消息是由于"// c code"
是“格式错误的实体字符串”。任何更健全的东西,你都参加了比赛:
ghci> :set -XTemplateHaskell
ghci> ffi = [d| foreign import ccall unsafe "foo" c_foo :: Int -> IO () |]
Here就是一个例子,它几乎完全符合你的要求。请注意,包inline-c和inline-java都依赖于此类内容。