call関数について。
自作関数は上級者向けと思われがちですが、callを使っていないだけで、無意識に同等のものを組んでいる人は多いです。




関数の自作

里々で自作関数を使うにはcall関数で実現します。
関数と言うと難しそうに聞こえますが、

  • 『現在月を入れると、季節(春夏秋冬)を返す』
  • 『現在時や現在月を入れると、昼か夜かを返す』
  • 『郵便物の重さの数値を入れると、料金を返す』
  • 『地域情報を入れると、その地域の天気予報を返す』

といった具合に、掻い摘んで言えば何かを入れたら、何かが返ってくるものです。
使いこなせば制作・管理・仕様変更の労力の削減に役立つはず。

call関数

そもそもcall関数とは、*文または@単語群に引数を付けて呼ぶ関数です。
呼び出された文または単語群では、(A0)で引数0を、(A1)で引数1を、以下数字通りに参照できます。

(call,文または単語群,引数0,引数1,引数2......)

呼び出す文または単語群がいわゆる自作関数になります。
…と、こう書くとなんだか特別な何かに見えるかも知れませんが、
実体は文または単語群なので、普段()で呼び出すのと変わりません。
つまり(call,文または単語群)と(文または単語群)は同じものです。
もっと言えば、引数を指定しないcall関数はcall,の文字数分だけ無駄という事に。

表記例

@箱の数
(A0)に(A1)が(A2)個あります。

上記のような自作関数を作った時、
(call,箱の数,部屋,箱,16)で呼び出すと「部屋に箱が16個あります。」
(箱の数)で呼び出すと「にが個あります。」
と表示されます。*1

replace.txtで自作関数っぽく

replace.txtで置き換えておくとcallを省略でき、自作関数らしく記述できます。

(箱の数,【タブ】(call,箱の数,
*
:(箱の数,部屋,箱,16)

活用例

季節を返す

@季節
(nswitch,(A0),冬,冬,春,春,春,夏,夏,夏,秋,秋,秋,冬)

*
:3月の季節って(call,季節,3)?
:まだまだ寒いで。つーか今(call,季節,(現在月))やん。

指定した音声を鳴らす

サウンド再生タグを楽に書く。 (※「sound」フォルダにbird.wavやbell.wavが入っている状態での例)

*
:(call、音、bird)鳥のなきごえです。\w9\w9\w9
:(call、音、bell)ベルの音です。

@音
\_v[sound/(A0).wav]

計算する

2つの数字を足し算したり掛け算したり。(一部ssu.dllを使用)

*
:5と4で計算

(call,計算,5,4)

*
:8と16で計算

(call,計算,8,16)

*
:10と22で計算

(call,計算,10,22)

*計算
:(A0)と(A1)を足すと「(calc,(A0)+(A1))」になるよ。
(A0)と(A1)を掛け算すると「(calc,(A0)*(A1))」になるよ。

整理

単語一覧メニューの項目を書く時すっきりさせる。(一部ssu.dllを使用)

*
:いぬだいすき!
<単語一覧に「いぬ」項目が追加されました>
$単語_いぬ【タブ】1

*単語一覧
:単語一覧です。

(call,単語項目,いぬ)φ
(call,単語項目,ねこ)φ
(call,単語項目,とり)φ
(call,単語項目,くま)φ
(call,単語項目,うさぎ)φ

@単語項目
(if、(変数「単語_(A0)」の存在)、☆ \q[(A0),(A0)の意味]\n)

*いぬの意味
:ワンワン吼える動物。

_単語一覧

*ねこの意味
:にゃーにゃー鳴く動物。

_単語一覧

*とりの意味
・・・(以下略)

*1 call関数を使わずに呼び出すと(A*)は空白となり表示されません。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-23 (月) 11:14:44 (236d)