Es wäre ganz praktisch, wenn JMP das zulassen würde Ersatz() Funktion ein optionales Argument wie z Ersatz( ...., erstes Vorkommen( 1 ) ) .Dies ist hilfreich, wenn Argumente per Referenz an eine Funktion übergeben werden.Folgendes berücksichtigen:
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;
*/Hier in der ersten Funktion rufe ich eine referenzierte Funktion mit einer gegebenen Argumentliste auf.Das Problem ist, dass die Ersatz() ersetzt alle Listen mit dem Funktionsaufruf, statt nur der äußeren.An dieser Stelle wäre es schön, nur das erste Vorkommen von zu ersetzen Aufführen() Ausdruck.