単純な古いユーザー定義関数は、単一の署名のみを持つことができます。あなたの関数定義は少し「オフ」です。入出力パラメーターを使用しており (「間違っている」わけではありませんが、奇妙です)、値を返していません。これは間違っています。次のようになります。
function inc returns integer ( input-output i as integer, addExpression as integer ):
i = i + addExpression.
return i.
end.
プロシージャーはデータ型の規則が多少緩和されており、いくつかの型変換が自動的に行われます (暗黙の 10 進数から整数への変換など)。これは、たとえば、自動的に丸められる小数を渡すことをサポートします。
procedure z:
define input-output parameter i as integer no-undo.
define input parameter x as integer.
i = i + x.
return.
end.
関数をクラスのメソッドとして作成する場合、メソッド シグネチャをオーバーロードできます。
これらの行に沿ったもの(テストされていません):
class X:
method public integer inc( input-output i as integer, input addExpression as integer ):
i = i + addExpression.
return i.
end.
method public integer inc( input-output i as integer, input addExpression as character ):
i = i + integer( addExpression ).
return i.
end.
end.