jack: (Default)
[personal profile] jack
So, in some programming languages I can say:

x=y=0

To mean "Set y equal to nought and x equal to that[1]". In others, you'd get "Set x equal to one if y is already zero, else zero."

But in what language can I say:

if (x===y==0)

to mean "if x and y are both zero"?

The obvious problem is common operator associativity doesn't work. If the operators are nested binary operators, "y==0" would have to return two values, both the result, and "0".

You could have a system whereby you *did* return a number of things, eg. the result in list[0] and the various operators or other hints in list[1..n], and then let logic decide how to use the hints. That might also be useful where a function really really wants to return two values.

But is there a consistent way of doing this without turning it into an unreadable mess? :)

[1] Non-pedant corner: non-pedants might say "set x and y equal to nought"

Date: 2007-05-03 06:03 pm (UTC)
deborah_c: (Default)
From: [personal profile] deborah_c
There are, IIRC, languages which allow cases like "x < y <= z" to be parsed as one might expect, although at the moment I'm at a loss to remember which. That's a special case, though, and can be handled by special-case parsing, rather than as normal expression evaluation.

I shall now be annoyed with myself until I remember where I've seen this...

Date: 2007-05-03 07:51 pm (UTC)
deborah_c: (Default)
From: [personal profile] deborah_c
Thank you. Eighteen years has evidently clouded my memory :-)

Date: 2007-05-03 09:50 pm (UTC)
simont: A picture of me in 2016 (Default)
From: [personal profile] simont
Eighteen years have evidently clouded your memory! :-)

Date: 2007-05-03 10:03 pm (UTC)
From: [identity profile] cartesiandaemon.livejournal.com
That's odd. Maybe time is being a mass noun?

Date: 2007-05-03 10:52 pm (UTC)
ext_8103: (Default)
From: [identity profile] ewx.livejournal.com
I'd say "eighteen years" can describe an interval, as well as eighteen objects which happen to be intervals themselves.

Date: 2007-05-03 10:57 pm (UTC)
deborah_c: (Default)
From: [personal profile] deborah_c
Thank you. Or, more prosaicly, I could have deleted "The passage of" from the start because it sounded too pompous :-)

Date: 2007-05-03 09:48 pm (UTC)
From: [identity profile] stephenpthomas.livejournal.com
As does Inform.