関数コンストラクト
バージョン 2.0 以降、ユーザーは関数コンストラクトを使い独自のNML関数を定義できます。関数は、 ブロックと同じように定義します。
function: function_name;
inputs: list of comma separated inputs;
outputs: list of comma separated outputs;
defs: suite;
Suite は、関数呼び出し、代入ステートメント、条件、またはループを指定できる一連のステートメントを表します。関数定義内の各ステートメントは、改行またはキャリッジ リターンで終わります。セミコロン ";" は、関数定義の終わりを示すために使用されます。
例:
function: lossfunc
inputs: y_true ;
outputs: y_pred ;
defs:
y_true = y_true ^ 2
y_pred = y_true ;
関数呼び出し:
ユーザー定義関数は、他の関数と同様に呼び出されます。
lossfunc: [in, out]
代入ステートメント:
variable = value
例:
c = [[2,3],"hi",[3,4,5]]
y = 2 ^ 2
p = range:[len: [c]]
条件:
if,elif, else は、すべての開始と終了を括弧{}でブロックします。ただし、指定した場合、ブロックには少なくとも 1 つの suite ステートメントを含める必要があります。 if、elif、elseブロック内での入れ子になった if ステートメント、またはループステートメントは許可されています。
Syntax:
if condition:
{
suite
}
elif condition:
{
suite
}
else:
{
suite
}
Suite は、関数呼び出し、代入ステートメント、条件、またはループを指定できる一連のステートメントを表します。elif ステートメントと else ステートメントはオプションです。
Example:
if k==4:
{
k=k+1
}
elif k <= 3:
{
k=k^2
}
else:
{
print:[k]
}
While Loop
while と else は、すべての開始と終了を括弧{}で囲んでブロックします。ただし、指定した場合、ブロックには少なくとも 1 つの suite ステートメントを含める必要があります。入れ子になったループまたは条件は使用できます。 構文:
while condition:
{
suite
}
else:
{
suite
}
Suite は、関数呼び出し、代入ステートメント、条件、またはループとして指定できる一連のステートメントを表します。else ステートメントは省略可能です。
例:
while True:
{
print:["Condition Satisfied"]
}
else:
{
print: ["Condition Not Satisfied"]
}
For Loop
構文:
for variable in list:
{
suite
}
else:
{
suite
}
Suite は、関数呼び出し、代入ステートメント、条件、またはループを指定できる一連のステートメントを表します。else ステートメントは省略可能です。
Example:
for a in [1,3,4]:
{
h=h+a
}