Kevin Ryde on Thu, 12 Nov 2015 09:44:06 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Vector of args


On 2015-11-10 at 23:24 GMT+01:00 Bill wrote:
>
> f(a,b,c,d[..])=....
> and then call(f,[1,2,3]) will still work

Oh, though presently that would be for not strictargs,

    default(strictargs,1);
    f(a,b,c,d[..])=print(d);
    call(f,[1,2,3])
    =>
    missing mandatory argument 'd' in user function

Loïc Grenié <loic.grenie@gmail.com> writes:
>
> or, worse, if someone else uses > call(f,...)
> the upgrade of f makes the "call" break.

Yes.  I worry the caller in effect begins to know things about how the
func likes to receive its args.  Let it keep its nose out :-).

(Bill points out in the bug that there's issues with default args, but
I'm happy to ignore that for now.  In effect call() can't do the
equivalent of f(1,,3).)

>   call(g,concat([a,b],c))

Yes, I think that's ok.  A little wordier but consistent.