Ce serait très pratique si JMP autorisait Remplaçant() fonction pour avoir un argument optionnel tel que Substitut( ...., Première occurrence( 1 ) ) .Cela aidera lors du passage d'arguments dans une fonction par référence.Considérer ce qui suit:
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;
*/Ici, dans la première fonction, j'appelle une fonction référencée avec une liste d'arguments donnée.Le problème est que le Substituer() remplace tout listes avec l'appel de fonction, au lieu de l'appel externe uniquement.C'est là qu'il serait bien de ne substituer que la première occurrence du Liste() expression.