「複文」文
文を書き連ねる複文
複文とは、文の始まりから「。」までの間に、複数の手順を呼び出して書き連ねた文です。手順呼出し文の動詞部分を連用形で書くと、続けて手順呼出し文を複数書けるという文法です。
次のプログラムは「一覧」配列から「カゲ」という文字列がある要素だけを取り出して「☆」で一つに繋げて表示するプログラムです。3行目は複文を使って書かれています。
//複文を使ったプログラム例 一覧は{「トカゲ」,「エリマキトカゲ」,「エリ」} 一覧から「カゲ」を取り出して「☆」で繋げて表示する
複文を使うことで、手順呼出し式を重ねて書いたり、変数を用意したりせずに、プログラムを短く書けます。
複文の仕組み
上記と同じように動作するプログラムを手順呼出し式で書くと次のようになります。
一覧は{「トカゲ」,「エリマキトカゲ」,「エリ」} 一覧から「カゲ」を取り出したものを「☆」で繋げたものを表示する
このようにいくつかの手順呼出し式を重ねたプログラム文は「~たもの」が頻出して冗長になりがちです。
一方で、上記のプログラムを「それ」変数を使って書くと次のようになります。このプログラムでは「それ」変数を使って「取り出す」手順の結果を「繋げる」手順で受け取り、その結果をさらに「表示する」手順に渡しています。
//複文を使ったプログラム例 一覧は{「トカゲ」,「エリマキトカゲ」,「エリ」} 一覧から「カゲ」を取り出す。それを「☆」で繋げる。それを表示する
このようなプログラムは、複文を使って短く書けます。
ます、動詞を連用形にすることで、続けて別の手順を呼び出せます。連用形で書いた動詞の手順呼出し文の返り値は、返り値は「それ」特殊変数に代入されます。
次に、連用形に続く次の呼出し文で実補語を1つだけ省略できます。実補語を省略すると、省略された実補語の助詞と「それ」特殊変数に格納された値を使って、省略された実補語を補って呼び出します。
このように連用形で複数の手順呼出し文を1文に書き連ねた文を「複文」で短くできます。
連用形動詞の例、複文の注意点
1. 動詞の連用形
動詞の連用形は、手順定義の動詞名をプロデルで自動的に活用したものが書けます。動詞や手順名がカタカナ語・英数字名の場合は、語尾を「して」「って」に活用したものが書けます。例えば、動詞の連用形は、次のような表記です。
- 取得して
- 繋げて
- 区切って
- 読み込んで
- 開いて
2. 書き繋げられる手順は返り値がある手順のみ
連用形で書き繋げられる手順は、返り値がある手順のみです。返り値がない手順を呼び出した後に、呼出し文を書き連ねることはできません。
例えば「報告する」手順には、戻り値が無いため、次のように書き続けることができず、構文エラーになります。
// 次の複文はエラーとなります 日付を報告して日付を表示する
3. 補語は連用形動詞までにすべて使われること
連用形動詞によって、手順呼出し文を書き続ける場合、連用形動詞句より前に書いた補語をその動詞がすべて受ける必要があります。
この点については、補語のスタックが関係します。補語のスタックについては「文」のページをご参照ください。
// 次の複文はエラーとなります 「-」で、配列から「カゲ」を取り出して、繋げて報告する // 補語は連用動詞を跨がないように書いてください 配列から「カゲ」を取り出して「-」で繋げて報告する
複文による代入
複文には「~とする」代入文も使えます。手順呼出し文の動詞部分を連用形にして「~とする」と書くと、~に指定した変数に手順の戻り値を代入できます。
「メモ.txt」から読み込んで内容とする それを報告する
なお「~とする」代入文の後は、さらに書き連ねられません。
このように「それ」特殊変数や複文を使った方法や、実補語を省略する方法を覚えると、プロデルのプログラムを、簡潔でスマートに、日本語として読めるプログラムとして書けます。