ブレースがだめならインデントを使えばいいじゃない
id:ytqwertyさんのところに昨日のをAdaとPascalの場合で書いた場合のが。
で、それを見てたら、AdaとかPascalとかそれ以前に、僕が書いた処理がちょっとヘボいことに気付いて(特にread_2int)、恥ずかしさのあまり穴に入りたくなった次第。しかし、近くに入れそうな穴がなかったので問題無かった。
えーと、あれは、ちょっと複雑に書いたほうが、テーマに沿うかなーとか、そういうことにしといてください。
まあ、そういう下らない話は置いといて、確かに、MLとかLispほどではないけど、AdaとPascalは空行無しで書いてもそれほど見にくいとは感じない。これは、どこが違うんだ…、と思って見てたら、「ひょっとしたら、ブレースが悪いんじゃないか…」と感じてきた。
hogehoge; } nanika;
こーいう形だけで見た場合、ブレースはどっちかっていうと、nanikaのほうにくっついてるように見える。それが気持ち悪いから、無意識のうちに改行入れてしまうんじゃないか、と。いや、断言はできないけど。なんとなく、そんな気がした。
で、「あー、じゃあブレース使わんほうがいいんかなー…ブロックの終わりはどうしたらいいかなー…begin〜endってあんま好きじゃないんだよな…」と、思ってたら、「インデントを使えばいいんだよ」とか、そんな考えが、ふと浮かんで、インデントを使うとしたら、こんな感じ↓
def read_int( fp, last, max ): mutable num = 0 in: while true: c = stdio.getc( fp ) in: if ctype.isdigit(c): num = num*10 + (c-'0') elseif c == last: if num <= max return num else parse_error() return 0 else parse_error()
になるかなーって妄想してたら、なんか、僕の求めてる物に非常に近いような気がしてきた。僕はずっとCスタイルが好きだと思ってたのに、全然そんなこと無かったようだ。
もうちょっと詰めて考える必要がありそうだけど、これに、前に考えた色々とか、最近考えた色々とか、そういうのを詰めたら、僕の理想の言語ができるかもしれん。と、思ってちょっと楽しくなってきたけど、言語なんて、妄想してる時が一番楽しいのであって、多分、今がピーク。
まあいいか、気が向いたら実装してみよう。いつになるか知らんが。
あと、Cだとか言う以前に、僕のコードは空行が多過ぎるような気がした。あれはどうなんだろうか。僕は精一杯見易くするつもりでやってるんだが、他にやってる人がいない。