C言語を使っていたころはループはforばかりを使っていた。
それがPerlでforeachを知り、これは良い! と思っていたのだけど。
最近、javaでforeachループを(forだけど)使っていて、なんか、今いちだなぁ、と。
CommonLispの loopマクロを知ってしまった今となっては。javaにはどうしてloopマクロがないんだ、と不満がつのってしまう。ストレスを感じる。
なぜだろう。
loopマクロだと感覚的にループ処理を書いていると、あまり思ってないような気がする。普通の処理を書いているような感じ。不思議だ。
たぶんループの中で行なわれる処理と、ループ自体の処理が渾然しているからかもしれない。つながっている。
forループとかだと、ループ自体の処理と、中の処理を頭の中で意識的に無理してつないでいるような感覚があるんだよな。loopマクロだと、それが自然に書き下していけるような感じ。