日本語スクリプト言語wythonの複合構文の決まり文句 [wython]
複合構文は、
- if構文
- for構文
- while構文
- 関数定義
の四種類である。こうして数えてみると、非常に少ない。ホントにこれでいいのか、不安になるが、たぶん、大丈夫なのだろう。
これらが複合文であるのは、一行目で文が完結せず、つまり、読点で終わり、それ以降の複合文の範囲を示すブロックは、Pythonと同様にインデントで示される。
このインデントによるブロックの範囲指定は、読み取る側からすると、非常に効率がいい。というのは、インデントはそのままインデントとして書き出してPythonに任せてしまえばよく、つまり、一行以上のものの処理を考えなくてすむからである。
それでは、これら複合文の定型句はどのように決めたらいいだろうか。
- もし・・・・ならば、
- リスト・・・の各要素を・・・に代入して、繰り返す。
- ・・・の間、繰り返す。
- 関数・・・を定義する。引数は、・・・型の・・・と・・・型の・・・とである。
if構文とwhile構文は、割合単純だし、日本語でも自然に表現できる。しかし、for構文と関数定義は、以前のブログでも、ほとんど問題はなかった。
一方、for構文は、くだけた表現、ないしは分かりやすい表現にしようとすれば冗長になり、毎回日本語で書くには長すぎる。簡潔だが、そのやっていることが、すぐにわかるような表現として、「リスト」とその要素を代入する「変数」を中心に、やや言葉足らずの表現にするにとどめた。しかし、逆にifやwhileの条件部分が、複雑になった場合の処理が難しいが、for構文は、リストも変数も複雑になりようがないので、「要素を代入して繰り返す」ということの意味を予め理解していれば、やや舌足らずでも十分行けるだろう。
関数の定義は、関数の内容を日本語で表現するかどうか、また引数への言及まで一つの文に収めるかどうかなど、表現に揺れがある。ここでは、関数定義と引数への言及は、一行ではあるが、別の文にした。あるいは、
関数some_function(x, y)を定義する。
というように、もう完全にそのまま日本語の中に埋め込んでしまうことも考えられる。あるいは、
文字xと整数yを引数に、関数some_function(x, y)を定義する。
くらいにすれば、引数の型を明示でき、初心者に関数の引数を自覚させることもできる。
結局、この最後のパターンが、様々な妥協の上で、一番自然な表現であり、かつプログラムで読み取るのも楽なような気がする。
これだけ定型句を確定できれば、この複合文を読み取るプログラムを書くのも、それほど難しくはないだろう。
コメント 0