Cametanさんのコメント(前の投稿)から、分からないとこをもう一度やってみました。
Listの要素が1個だと、2個以上とチョット違うようです。2個以上だと、x,y:x,yで初期値が一番前に
処理されるようです。その後は左から順番に処理されるようです。
3行目から6行目。12行目から13行目。
x,y:y,xの場合だと、言葉だとチョット面倒です。Listの左から処理されると考えると
ネストした一番深いところに入ります。
7行目から9行目。15行目から20行目。
やっていることは大体つかめましたが、どうも少しややっこしい様に感じます。
本質を捉えてないのかも知れません。