なでしこでは、これを併用して使うことができます。
#日本語的
3の乱数を表示する
#関数的
A = INT(3.14) + 3
日本語的に命令を呼ぶ場合は、助詞さえしっかり合致していれば、引数の順番が入れ替わっても問題なく引数が特定されます。
関数的に命令を呼ぶ場合は、引数の助詞を省略して書くことが許されますが、引数の順番を入れ替えることはできません。
また、関数的に呼ぶ場合で引数を省略して記述する時、先頭から引数が省略されます。
#引数省略の例・・・引数Aが省略可能な場合
●表示テスト({=?}AのBからCを)
「{A}、{B}、{C}」を表示。
「A」の「B」から「C」を表示テスト。#結果→A、B、C
「B」から「C」を表示テスト。#結果→、B、C
表示テスト(「B」,「C」)。#結果→、B、C
命令を実行した場合、多くの命令は命令の実行結果を、特殊変数『それ』に代入します。
「とまと」の「ま」を「と」に置換。
それを表示。#置換結果の「ととと」が表示される
関数的に命令を実行した場合は、代入式によって命令の結果が変数に代入されます。
A=「とまと」の「ま」を「と」に置換
Aを表示。#置換結果の「ととと」が表示される
命令をユーザーが独自に定義することができます。
# 書式
●関数名(引数リスト)
定義内容...
例えば、2つの数値を足すだけの簡単な命令を定義してみます。
#定義
●テストする(AとBを)
それは、A+B
#利用
3と5をテストして表示。#結果8が表示される
定義する命令に戻り値がある場合は、特殊変数『それ』に代入します。
なでしこでは、命令1つに対し、複数の助詞を複数登録できる仕組みになってます。たとえば、『言う』命令では、『Sと言う』という書き方と、『Sを言う』という書き方ができます。そこで、『Sと|Sを』というように、二種類の助詞を登録しておいて、どちらを指定しても、引数Sを特定できるようにしています。
ユーザー命令の定義のときも、同じように複数の助詞が登録できます。
●テスト(Sの|Sを)
「引数の内容は、{S}」と表示。
#登録してある助詞ならどれを使っても同じ結果が得られる。
「あ」のテスト。
「い」をテスト。
原則的に関数の引数は値渡しで関数に渡されます。例外はグループ・配列・ハッシュでこれは参照渡しされます。
しかし、関数の宣言で参照渡しと値渡しを明示して宣言できるようになっています。以下は参照渡しで文字列を呼び出す例だ。以下のテストの{参照渡し}を{値渡し}に変えてみると引数の渡され方がどうなっているのかを調べることができます。
Aは「あいうえお」
Aをテスト。
Aを表示。#表示結果→参照渡しだと改変された
待機。
●テスト({参照渡し}Sを)
S=「参照渡しなので改変された」