我有一个谓词,用于在 Eclipse 中初始化 2D 矩阵:
problem(1, [](
[](1,2,3,4),
[](1,2,4,3),
[](1,3,2,4),
)
).
我想使用 C++ 程序与 Eclipse 谓词集进行交互,因此我需要一种方法来从 C++ 创建具有任意值和维度的矩阵。我可以创建一个一维矩阵
EC_functor matrix4("[]", 4);
EC_word r1 = term(matrix4, 1, 2, 3, 4);
EC_word r2 = term(matrix4, 1, 2, 4, 3);
EC_word r3 = term(matrix4, 1, 3, 2, 4);
这不会导致任何明显的问题,但是当我尝试将它们打包到二维矩阵中时,它会产生错误并终止:
EC_functor matrix3("[]", 3);
EC_word table = term(matrix3, r1, r2, r3);
non-atomic initializer in ecl_refs_create()
如何在 C++ 中创建 2D 矩阵并将其作为复合项参数传递?
(我在 https://www.eclipseclp.org/doc/examples 或 https://eclipseclp.org/doc/embedding.pdf 中找不到任何示例)
这个问题意外地没有包含在我的问题示例中,而是将
term
返回的对象类型从 EC_ref
更改为 EC_word
。
我对 https://eclipseclp.org/doc/embedding.pdf#page=19 似乎指的是类型之间的可互换性感到困惑。