Bill Allombert on Mon, 25 Dec 2023 19:34:31 +0100


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

Re: reference parameters


On Mon, Dec 25, 2023 at 05:46:37PM +0100, Ruud H.G. van Tol wrote:
> ? ??listput
> listput( list,x,{n}):

Not that this is a bug in the doc generator, the fixed version outputs
  listput(~list,x,{n}):

(~ is an unbreakable space in TeX).

>    Sets the n-th element of the list list (which must be of type t_LIST)
> equal to x. If n is omitted, or greater than the list length, appends x. The
> function returns the inserted element.
> 
>    ? L = List();
>    ? listput(~L, 1)
>    %2 = 1
>    ? listput(~L, 2)
>    %3 = 2
>    ? L
>    %4 = List([1, 2])
> 
> Note the ~ L: this means that the function is called with a reference to L
> and changes L in place.
> 
> Is that explicit reference notation still relevant?

Why not ? 

We allow to omit the "~" for backward compatibility only.
This is mandatory for user-defined functions, because GP functions
are not prototyped.

Cheers,
Bill.