Bill Allombert on Wed, 04 Mar 2020 23:29:34 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Not a function in function call |
On Wed, Mar 04, 2020 at 02:29:31PM -0600, Hans L wrote: > Not sure if this is any relation, but I'm seeing the same error on a > much simpler test case: > > ? ?Str > Str({x}*): concatenates its (string) argument into a single string. > > ? Str(1,2,3,4) > %1 = "1234" > > ? ?call > call(f, A): A being a vector, evaluates f(A[1],...,A[#A]). > > ? call(Str, [1,2,3,4]) > *** at top-level: call(Str,[1,2,3,4]) > *** ^------------------- > *** call: not a function in function call > *** Break loop: type 'break' to go back to GP prompt > > I would expect this to return the same as Str(1,2,3,4) > Is this a bug or is there some nuance to using "call" that I'm not > understanding? The problem is that for historical reasons, functions without mandatory arguments can be called without trailing (). This is needed for I and Pi to work as expected. Unfortunately, this also works with Str. Secondly, Str is a variadic function, so you need to pass all parameters as one. You can do ? call("Str",[[1,2,3,4]]) %59 = "1234" Cheers, Bill.