on | to 識別子 [[of | in] 変数1]
		[前置詞 変数1...]
		[given ラベル : 変数1 [, ラベル : 変数1...]]
	[global 変数2 [, 変数2...]]
	[local 変数3 [, 変数3...]]
	[]
end [識別子]

引数(Parameters)

識別子命令の名前
変数1命令の引数を受け取る変数(仮引数)
前置詞引数を識別する(規定)
ラベル引数を識別する(任意)
変数2大域変数
変数3局所変数
AppleScriptの任意の文

解説(Note)

 利用者(user)が任意に設定した命令を、引数にラベルを付けて受け取るハンドラ(引数を位置で渡すタイプもある)
 詳しくは、利用者定義命令の説明handler値を参照してほしい。

 前置詞は、about / above / against / apart from / around / aside from / at / blow / beneath / beside / between / by / for / from / insted of / into / on / onto / out of / over / since / through(thru) / to / underのいずれか。
 ラベルは、given と書いた後レコードのように記述する。
 これらの変数は順番に依存せず、前置詞やラベルによって値が関連づけられる。また、二つの形式は混在させることができる。
 渡す値が真偽値である場合は、呼び出す時にwith(trueの場合)とwithout(falseの場合)を使って、一度に値を渡すことができる。

 ofは(特に命令を呼び出す時には)、属性や要素と同じ書き方となるために紛らわしいので、単独で使わない方がいい(というか、使えないようになっている)
 また、ofやinを省略して書けるように言語ガイドの書式にはあるが、うまく認識しない。

 Mac OS X10.10から、仮引数デフォルト値の指定ができるようになった(用例4)

用例(Example)

  1. haveSameClass given ValueA:10, ValueB:"20"
    
    on haveSameClass given ValueA:v1, ValueB:v2
      return (class of v1) = (class of v2)
    end haveSameClass
  2. display dialog (doToday at "公園" for "デート")
    
    on doToday for toDo at thePlace
      return (thePlace & "で" & toDo & "します")
    end doToday
  3. withSample with bo1 and bo3 without bo2
    
    on withSample given bo1:a, bo2:b, bo3:c
      return {a, b, c}
    end withSample
  4. sample to 5
    
    on sample from val1 : 10 to val2
      return val1 + val2
    end sample
※1,3,4 結果ウィンドウでResultを見て下さい。