News for hackers. Stuff that matters.
Re:A Parable by Dijkstra (1973) by mikorym on Monday July 16, 2018 @01:40AM (#17539010)
> the least lucky passenger would have to walk six car lengths

I just want to elaborate on this to show which assumptions you are making. There are two ways to make a paired unit: --+ and -+-.

In your scenario I think you assume the first. The end of the train is thus ...+----+, since you mention the second last car's orientation being reversed. The +'s represent toilets. Then, what you are saying is to consider a passenger located at the ^ symbol: ...+--^--+. In this configuration, your observation makes sense.

I do think that a more practical solution is to work only with (-+,-) pairs. The symmetry that Dijkstra talks of is then that (-+,-) and (-,+-) are equivalent for the purposes of the problem. Then an end of a train would be: ...-+-+-. This is then the "extra few feet" that he talks of.

Re:A Parable by Dijkstra (1973) by mcguire on Monday July 16, 2018 @12:11PM (#17542412)
Indeed. Dijkstra specifies two cars joined with the toilet in the middle:

"When each car with a toilet was coupled, from now until eternity, at its toileted end with a car without a toilet, from then onwards the shunting yard, instead of dealing with N directed cars of two types, could deal with N/2 identical units that, to all intents and purposes, could be regarded as symmetrical."

Re:A Parable by Dijkstra (1973) by jancsika on Monday July 16, 2018 @05:22PM (#17545247)
I think what bothers me about this is that it's an analogy which crosses the digital divide.

On the physical "train" side of the analogy, we've got a believable scheme to save money by only having a toilet in every other car. Given the constraints, it is indeed clever to make these two-car atomic units and reimagine them as symmetrical. All the fixes in the story taken together could pale in comparison to the cost of putting a toilets all the cars.

But when we cross the digital divide we get a completely different set of constraints. Even if dealing with 100 million train cars it may be cheaper to just fork the entire train yard and add a toilet object to each car.

Re:A Parable by Dijkstra (1973) by jancsika on Monday July 16, 2018 @05:09PM (#17545154)
> I just want to elaborate on this to show which assumptions you are making. There are two ways to make a paired unit: --+ and -+-.

Why are there three characters to represent a pair?

Do you mean something like this:

car with toilet: [+-]

car without toilet: [--]

my pair: [+-][--]

your pair: [-+][--]

?

> This is then the "extra few feet" that he talks of.

Using my notation (sorry to flip it):

[-+][--][-+][--]

That's four cars. If someone is sitting at the right end of car #2, they have an arrow pointing them to car #1 for the toilet. If that toilet is broken, then they must walk back through car #2 all the way to the end of car #3.

But I may be misunderstanding your initial notation.

Re:A Parable by Dijkstra (1973) by mikorym on Tuesday July 17, 2018 @03:49AM (#17548027)
Your bracket notation in effect works the same as mine. The difference is that -+- could be any of [-+][--] or [--][+-] by symmetry and so leaving out brackets. In my notation "+" is a character which does not occupy space. Hence [-+][--][-+][--] is the same as -+--+-.

Sorry about the error earlier: "...-+-+-" was a typo that I couldn't edit anymore.

Re:A Parable by Dijkstra (1973) by mannykannot on Monday July 16, 2018 @11:41AM (#17542170)
Yes, though I think the last three feet refers to the vestibule connecting the two carriages, which a passenger in the non-toilet carriage must traverse.
Re:A Parable by Dijkstra (1973) by mikorym on Tuesday July 17, 2018 @08:20AM (#17549151)
Thanks, that does make sense. So he means three extra feet of travelling that our equivalence relation with (-,+-) ~ (-+,-) ignores.
Re:A Parable by Dijkstra (1973) by mikorym on Monday July 16, 2018 @07:03AM (#17540285)
Correction on the second last sentence: "...-+--+-".