JMP が代わりの()次のようなオプションの引数を持つ関数Substitute( ...., First Occurrence( 1 ) ) .これは、引数を参照によって関数に渡すときに役立ちます。次の点を考慮してください。
some function = Function( {_function, _args},
{Default Local},
function = Name Expr( _function );
Eval( Substitute( _args, {}, Expr( function ) ) )
);
other function = Function( {_1, _2, _3 = "optional"},
Show( _1, _2, _3 )
);
some function( Name Expr( other function ), {1, 2, 3} );
/* OUTPUT
_1 = 1;
_2 = 2;
_3 = 3;
*/
some function( Name Expr( other function ), {1, {2, 4}, 3} );
/* EXPECTED OUTPUT
_1 = 1;
_2 = {2, 4};
_3 = 3;
*/ここで最初の関数では、指定された引数リストを使用して参照関数を呼び出しています。問題は、置換()置き換えます全て外側のリストだけではなく、関数呼び出しを含むリスト。これは、最初に出現したリスト()表現。