MLTransferExpression (C 関数)

MLTransferExpressionWSTransferExpressionに置き換えられた.

int MLTransferExpression(MLINK dst,MLINK src)

式をソースリンクsrc からあて先リンクdst へ転送する.

詳細

  • dstsrc とが異なっている必要はない.
  • dstsrc は,ループバックリンクでもよいし,普通のリンクでもよい.
  • MLTransferExpression()はエラーがあると0を返し,関数が成功するとゼロ以外の値を返す.
  • MLTransferExpression()はリンクからの式を読み取って,それをループバックリンクに保持するためによく使われる.
  • MLTransferExpression()では dst に対して(MLINK)0 が渡され,src 上の式が除去される.
  • MLTransferExpression()は,MathLinkヘッダファイルmathlink.hで宣言される.

例題

  (1)

#include "mathlink.h"

/* transfer an expression to link 2 from loopback link 1 */

void f(MLINK lp2, MLINK lp1)
{
    /* send EvaluatePacket[ToExpression[str]] to lp1 */
if(! MLPutFunction(lp1, "EvaluatePacket", 1))
        { /* unable to put function to lp1 */ }

    if(! MLPutFunction(lp1, "ToExpression", 1))
        { /* unable to put function to lp1 */ }

    if(! MLPutString(lp1, "a = Table[RandomInteger[2,12]];"))
        { /* unable to put the string to lp1 */ }

    if(! MLEndPacket(lp1))
        { /* unable to put the end-of-packet indicator to lp1 */ }

    if(! MLFlush(lp1))
        { /* unable to put flush any outgoing data buffered in lp1 */ }

/* now transfer to lp2 from lp1 */
    if(! MLTransferExpression(lp2, lp1))
        { /* unable to transfer an expression from lp1 to lp2 */ }
}