ども、機械です。
ICON講座は時々思い出して読んでるのですが、未だ感覚がつかめず・・・
面白そうなのに、つかみ所が無く、もどかしい言語です(爆)
> while sum +:= numeric(("0" ~== read()))
> の方が、特徴が出ているかと思います。
式の成功、失敗が値になるあたり、C言語のファイル読み取りと似てる
ような気もするのですが、失敗が即座に0にならず、比較式の値になって
しまうあたり、使い方によっては面白そうです。
考え方が変わった言語は、慣れるまでがちと大変ですが、いろんな発見が
あって面白いです。
> 比較式が成功すると whileループは継続しますが、
> 比較式が失敗すると、numeric()も失敗し、 +:=も失敗し、
> whileも失敗(ループ終了する)し、ループを抜ける。
> という動作をします。
> ということで、if ... then ... の構文を少なくできるケースが多いです。
> 慣れると便利です。
文が多くなると、読みづらくなる・・・
一文が複雑だと、読みづらくなる・・・
文法が多いと、読みづらくなる・・・
文法が一通りでないと、読みづらくなる・・・
思考の流れに沿わない文は、読みづらくなる・・・
上の条件の全てを回避することは出来ないので、どれかとトレードオフ
になるかと思うのですが、AWK,Perl,ICON,Python,Ruby,Tcl(,Lisp?,
Forth??)などなど、そういった場所でスタイルが反映されていて面白いと
思います。
たとえば、if文が複雑に枝分かれすると、あきらかに読みにくいコード
になりますが、if文自体は誰が見てもわかるシンプルな文法ですし、根性
さえあれば素人でもフローチャートを作って理解することができる、
人間の自然な思考に近い構造でもあります。
※GOTO文となると、さすがに「すぱげってぃ」だけど・・・
反面、特にLispなどで、ある程度なれてしまうと、常人には複雑怪奇な
式も、非常にすっきりと、まとまって見えて理解しやすい、ということも
実際ありますよね。
十人十色だからこそ、自分の「お気に入りの言語」というのが出来てくる
とは思うのですが、言語は思考のベースでもありますので、様々な言語に触
れて、いろんな思考方法を取り入れていくのもまた面白いです。
※各人が、マイペースでコーディングが可能なのがPerlのウリなんだそうで
すが、Pythonなんか逆だもんなぁ・・・
つーことで、色々参考にさせていただきたいので、これからもICON版とか
よろしく☆
機械伯爵