调用辅助的 Mathematica 过程
用 MathLink 连接到一个辅助程序上.
在这里使用的计算机系统上,开始一个辅助
Mathematica 过程.
| Out[1]= |  |
这里是一个包,它表示来自于辅助
Mathematica 过程的第一个输入提示.
| Out[2]= |  |
这里写一个包,它表示要进入辅助
Mathematica 过程的文本.
| Out[4]= |  |
| Out[5]= |  |
对一个 Mathematica 进程中所涉及的各种不同对象进行组织管理的基本方式是使用 MathLink packets. 一个 MathLink 包就是一个表达式,它有一个确定的头表明其作用或意义.
Mathematica 进程中使用的基本包.
| Out[6]= |  |
| Out[8]= |  |
| Out[9]= |  |
| Out[10]= |  |
Mathematica 进程中产生的额外包.
用 EnterTextPacket["input"] 对 Mathematica 进行输入后,那么 Mathematica 就会自动产生一个输出字符串,并且用 ReturnTextPacket["output"] 呼应. 但用 EnterExpressionPacket[expr] 输入时,Mathematica 就用 ReturnExpressionPacket[expr] 呼应,并且不把输出变为一个字符串.
表示使用表达式的输入输出行的包.
对辅助
Mathematica 进程输入一个表达式,并不计算它.
这里是从辅助
Mathematica 进程中返回的三个包.
| Out[12]= |  |
InputNamePacket 和 OutputNamePacket 包在判断辅助 Mathematica 进程的当前状态是方便的. 通过用
等字符串调用这个辅助 Mathematica 进程可以抑制这些包的产生.
即使明确地抑制了 InputNamePacket 和 OutputNamePacket 包的产生,Mathematica 仍将像输入一个行一样处理用 EnterTextPacket 或者 EnterExpressionPacket 进行的输入. 这意味着 Mathematica 将调用 $Pre 和$Post 等,并对 In[$Line] 和 Out[$Line] 指定值.
计算没有明显输入和输出行的表达式.
| Out[14]= |  |
| Out[16]= |  |
| Out[17]= |  |
在大部分情况中,可以认为向 Mathematica 发送一个 EvaluatePacket 会导致 Mathematica 进行一个运算,并返回 ReturnPacket 结束的各种包. 然而,当运算涉及 Input 等函数时,Mathematica 在进行该计算之前必须得到其它输入.
这里发送一个包,它的计算涉及到一个
Input 函数.
| Out[19]= |  |
| Out[20]= |  |
| Out[22]= |  |
中断一个与 MathLink 兼容的程序.
| Out[24]= |  |
| Out[26]= |  |