plusto operator definition missing?
Jose E. Marchesi
jemarch@gnu.org
Sun Jul 13 21:04:39 GMT 2025
> Thank you Jose,
>
> On Sun, Jul 13, 2025 at 1:24 PM Jose E. Marchesi <jemarch@gnu.org> wrote:
>
>>
>> > Hello all,
>> >
>> > I was going through Lindsey a couple of days ago and noticed the plusto
>> > operator definition on p. 244. Here is what it says:
>> >
>> > operator priority mode of a mode of b mode of result meaning
>> > plusto 1 string ref string ref string b := a + b
>> > +=: char ref string ref string
>> >
>> > (I hope that shows up ok in peoples' email; I did it in fixed width text)
>> >
>> > I have a version of the procedure "whole" that I use with GNU Algol 68
>> that
>> > has the line
>> >
>> > digit_string := digit_char + digit_string
>> >
>> > in it, and I thought I'd try +=: instead, as in:
>> >
>> > digit_string +=: digit_char
>> >
>> > However, ga68 complains:
>> >
>> > testl.a68:277:50: error: CHAR cannot be coerced to REF STRING in this
>> > context
>> > 277 | digit_string +=: digit_char;
>> >
>> > I am supposing that this is due to not having the second version of the
>> > operator defined - the one that works with a char on the right hand side.
>> >
>> > Am I missing something? Thanks in advance.
>>
>> I think you mean:
>>
>> digit_char +=: digit_string;
>>
>> Which works as expected.
>>
>
> My apologies. Too many years of admiring the sacred nature of the left
> hand side...
:)
MARY had right-associative assignations, which actually made it possible
to treat them as regular dyadic operators and therefore overloadable:
foo =: bar;
instead of:
bar := foo;
More information about the Algol68
mailing list