手順
プログラムの小さな固まりに分けたものを「手順」と呼びます。他のプログラミング言語では、関数やメソッドと呼ばれるものに相当します。
手順を定義する
手順を定義するには、次のような手順宣言文を書きます。
手順宣言文の書式
《手順名》手順
/* この手順が呼び出されたときに実行する文 */
終わり
《手順名》には、手順の名前(動詞)を書きます。
例文
挨拶する 挨拶する手順 「こんにちは」を表示する 終わり
引数を持つ手順宣言文
手順を実行する際に、必要な情報(引数)を指定する場合は、次のように書きます。
書式
[《変数名》]《助詞》・・・、《手順名》手順
/* この手順が呼び出されたときに実行する文 */
終わり
- 《変数名》
- 必要な情報を格納する変数の名前を書きます。一つの手順定義では同じ名前の変数を2回以上指定できません。
- 《助詞》
- 《変数名》と対応づけられる助詞を書きます。一つの手順定義では同じ助詞を2回以上指定できません。
- 《手順名》
- 手順の名前を書きます。
“[《変数名》]《助詞》”の部分を実補語と呼び出します。
実補語は、必要な数だけ書きます。その際は“、”で区切って書きます。
例文
次の例では、人を紹介するメッセージを表示するための「紹介する」という手順を定義して呼び出しています。
「太郎」へ「次郎」を紹介する [相手]へ、[名前]を、紹介する手順 「[相手]さん、こちらは[名前]さんです。」を表示する 終わり
実補語の省略
省略する実補語を〈 〉で囲むことで、手順を呼び出すの際に、その補語にある助詞を省略できます。
例文
「あああ」を処理する 「いいい」を「へ」で処理する 【値】を〈【オプション】で〉処理する手順 オプションが無でなければ「オプション:[オプション]」を報告する 値を報告する 終わり
形式補語
手順名は、単に動詞であるほかにも、述語と動詞を含めて手順名としたい場合があります。
プロデルでは《手順名》に助詞(「を」「から」「まで」「へ」)が含まれる場合に、助詞で終わる句を形式補語として扱って、残りの句を動詞としています。つまりプロデルの手順名は、1つの動詞と、0個以上の形式補語で構成されています。
形式補語は、手順名の一部である補語のことです。実補語は手順の引数を表す補語であるのに対して形式補語は、引数としての意味はありません。ただし、実補語と形式補語は、文法上同列に扱われるため、手順を呼び出す際に順番を入れ替えて書けます。
例文 手順名に形式補語が含まれる手順
次のプログラムでは「データを抽出する」という名前の手順を宣言しています。手順名のうち「データを」という句が形式補語として定義されます。そのため、例文のように形式補語(データを)と実補語(~を)とは、書く順番を変えられます。
「データ.csv」からデータを抽出する データを「データ.csv」から抽出する 【ファイル名】からデータを抽出する手順 ファイル名を報告する 終わり
結果を返す
手順で行った処理の結果として、戻り値を返せます。
手順の戻り値を返すには、次のように書きます。
書式
《戻り値》を返す
《戻り値》で手順を抜け出す
- 《戻り値》
- 手順の結果として返す戻り値を書きます。
戻り値の型を指定する
指定した型の戻り値を、必ず返すことを明示する場合は、次のように書きます。
書式
《手順名》手順:《戻り値の型》 終わり
- 《手順名》
- 手順の名前を書きます。
- 《戻り値の型》
- 戻り値となる種類を書きます。
《戻り値の型》を指定した手順では「~を返す」文を使って、必ず戻り値を返す必要があります。
名詞手順の宣言
計算する手順や、真偽値判定する手順など、手順の役割によっては、次のような形でも書けます。なお、“:《戻り値の型》”は、書かずに省略できます。またこれらの手順は名詞手順となり、送り仮名を付けたり語尾を活用できません。
《名詞手順名》かどうかを判定する手順:《戻り値の型》 終わり
《名詞手順名》を求める手順:《戻り値の型》 終わり
例文
平均値を求める手順 10を返す 終わり
例文
正解かどうかを判定する手順 ○を返す 終わり
局所変数を宣言する
手順内で、次のように書くことで、手順内だけで有効な変数(局所変数)を宣言できます。詳しくは、有効範囲をご覧ください。
【《変数名》:《種類名》】
参照渡し
仮引数名の前に「→」を付けることでその仮引数が参照渡しとなります。参照渡しを設定した仮引数では、手順呼出し文で対応する引数に指定した変数をそのまま引き継ぐこととなります。つまり手順の中で変数の値を変更した場合には、呼び出し元の変数にも反映されます。
例文
値は1 値をアップする 値を報告する →【V】を、アップする手順 Vは、V+1 終わり