如何在 Haskell 的 inline-c 中 return 来自 C 块的列表或数组?
How to return a list or array from C block in Haskell's inline-c?
如何从 Haskell 的 inline-c 中的 C 块中获取列表或数组?换句话说,如何在 C 中构建复杂数据并在 Haskell 中使用它。
像这样:
foo :: IO [Int]
foo = do
what? <- [C.block| <what?> {
ints = calloc(10, sizeof(int));
// ...
return <what?>;
} |]
return <what?>
我可以在某些 Haskell 类型中包装指针和大小,但我想使用 Haskell 中的列表,打印它,在 JSON 中编码,等等
如何从 Haskell 的 inline-c 中的 C 块中获取列表或数组?换句话说,如何在 C 中构建复杂数据并在 Haskell 中使用它。 像这样:
foo :: IO [Int]
foo = do
what? <- [C.block| <what?> {
ints = calloc(10, sizeof(int));
// ...
return <what?>;
} |]
return <what?>
我可以在某些 Haskell 类型中包装指针和大小,但我想使用 Haskell 中的列表,打印它,在 JSON 中编码,等等