この関数を「Aが正の数のみ2倍にする」(負数の場合は0を戻す)という関数にしてみましょう。 DEF X2 A OUT B  IF A>0 THEN B=A*2 END ここで X2 -1 OUT B とするとType mismatchエラーとなります。 引数が数値変数であるため戻り値も数値変数であるため問題ないはずですが、代入された時点で型が決まるため引数に負数を設定したらローカル変数Bには値が代入されてないため型が決まらず戻り値に数値変数を指定しているためType mismatchエラーとなるわけです。 エラーが出ないためにはローカル変数Bが数値変数で確定させる必要があり、最も簡単な方法はB=0をDEF内で実行させるということです。