Every lvalue expression with the -> operator becomes a
call to this function, i.e. a->b=c is the same as
predef::`->=(a,"b",c) where "b" is the symbol
b in string form.
This function behaves like `[]= , except that the index is
passed literally as a string instead of being evaluated.
If arg is an object that implements lfun::`->=() , that function
will be called with index and val as the arguments.
arg can have any of the following types:
object
The non-protected (ie public) variable named index will
be looked up in arg , and assigned val .
array|mapping
Index index in arg will be assigned val .
multiset
If val is 0 (zero), one occurrance of index in
arg will be removed. Otherwise index will be added
to arg if it is not already there.
Returns
val will be returned.
Note
In an expression a->b=c, the symbol b can be any
token that matches the identifier syntax - keywords are
disregarded in that context.
Note
An arrow indexing expression in a non-lvalue context, i.e. where
the index is being queried instead of assigned, uses `->
instead of this function.