Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica MathLink中的数据包链:数据包总是严格有序的吗?_Wolfram Mathematica_Mathlink - Fatal编程技术网

Wolfram mathematica MathLink中的数据包链:数据包总是严格有序的吗?

Wolfram mathematica MathLink中的数据包链:数据包总是严格有序的吗?,wolfram-mathematica,mathlink,Wolfram Mathematica,Mathlink,该文档没有明确说明返回的数据包的顺序 从内核通过MathLink。很自然地认为(当 发送带有headEnterExpressionPacket的输入表达式并在标准模式下工作): 1) 下一个InputNamePacket之前的最后一个数据包始终是 ReturnExpressionPacket 2) 可能总是只有一个ReturnExpressionPacket和一个 outputnamepack一个EnterExpressionPacket 3) ReturnExpressionPacket始终是

该文档没有明确说明返回的数据包的顺序 从内核通过
MathLink
。很自然地认为(当 发送带有head
EnterExpressionPacket
的输入表达式并在标准模式下工作):

1) 下一个
InputNamePacket
之前的最后一个数据包始终是
ReturnExpressionPacket

2) 可能总是只有一个
ReturnExpressionPacket
和一个
outputnamepack
一个
EnterExpressionPacket

3)
ReturnExpressionPacket
始终是
outputnamepack

4) 在
MessagePacket
之后,下一个数据包始终是
textpack
with 该消息的所有内容

5) 在标准模式下,只有7种类型的返回数据包:
inputnamepack
outputnamepack
ReturnExpressionPacket
displayedpacket
MessagePacket
textpack

以下哪项陈述是正确的?

  • 1可能无法保证
  • 2绝对不是真的(评估:“2+2\n2+3”)
  • 3可能是正确的,但可能无法保证
  • 我相信4是真的
  • 5是不能保证的
通常,您应该编写代码,使其不依赖于来自内核的数据包的顺序。在收到新的InputNamePacket之前,评估应被视为“活动”。OutputNamePacket应该更新一些变量。ReturnExpressionPacket应使用该变量的当前输出名称。如果您收到一个未知的数据包,只需忽略它并转到下一个数据包。

  • 1可能无法保证
  • 2绝对不是真的(评估:“2+2\n2+3”)
  • 3可能是正确的,但可能无法保证
  • 我相信4是真的
  • 5是不能保证的

通常,您应该编写代码,使其不依赖于来自内核的数据包的顺序。在收到新的InputNamePacket之前,评估应被视为“活动”。OutputNamePacket应该更新一些变量。ReturnExpressionPacket应使用该变量的当前输出名称。如果您收到一个未知的数据包,只需忽略它并转到下一个数据包。

示例1不正确:“foo=1;”将不会生成ReturnExpressionPacket。内核只返回一个InputNamePacket。例如,1不是真的:“foo=1;”将不会生成ReturnExpressionPacket。内核只返回一个InputNamePacket。可能需要注意的是,John Fultz已经在官方新闻组上详细说明了这个问题。可能需要注意的是,John Fultz已经在官方新闻组上详细说明了这个问题。