FileMakerにも予約語はあって、ここに解説がかいてあります。
使用できないというより、使用できるけどエスケープされるよという事のようです。
ただ、変数名で使おうとするとちょっと変な事が起きたので、メモを。
コード
今回気づいたのは、Letの変数です。
Let ( [ aa = Time ( 0 ; 0 ; 0 ); bb =Time ( 0 ; 0 ; 0 ) ] ; aa + bb )
これは通るけれど、
Let ( [ time = Time ( 0 ; 0 ; 0 ); bb =Time ( 0 ; 0 ; 0 ) ] ; time + bb )
これは、エラーが起きて通らない。変数timeがTime関数と名前が被っているからだと思います。
ところが、
Let ( time = Time ( 0 ; 0 ; 0 ); time )
これは通るんですよね。ついでに、
Let ( [ aa = Time ( 0 ; 0 ; 0 ); time =Time ( 0 ; 0 ; 0 ) ] ; aa + time )
これも通る。おまけに、
Let ( [ $time = Time ( 0 ; 0 ; 0 ); bb =Time ( 0 ; 0 ; 0 ) ] ; $time + bb )
こうしても通る。
まとめ
- Let関数の中の
- 変数の設定で
- ローカル変数($)やグローバル変数($$)ではなく、Let変数として宣言して
- 変数名と関数名が被り
- その後に別の変数の宣言が続く
という条件を満たしていると、エラーが起きるようです。
ローカル変数扱いにすれば問題ないですが、スコープの問題もあるようなので、被らないようにしたほうが良いと思います。
ここまでかいてなんですが、「これ予約語と関係あるのかな?」とも思わなくもないです。