Expression
Scillaにおけるサポートされている式は以下となります。
let x = f
これはグローバルな宣言となり、Contract内にてfがxであると定義します。
下記はInt32型の1をoneとして宣言しています。
let one = Int32 1
let x = f in expr
これはプライベートな宣言となり、続く式exprの中でfがxであることを定義します。
下記の回答は3となりますが、ここではoneとtwoはinで続いた次行に対してプライベートな宣言として扱われます。
※builtinとaddは、oneにtwoを追加する処理となります。builtin関数参照 let sum =
let one = Int32 1 in
let two = Int32 2 in
builtin add one two
{ <entry>_1 ; <entry>_2 ... }
メッセージ式
fun (x : T) => expr
T型のxを続く式exprの中で利用できるようにします。
tfun T => expr
@x T
f x
builtin f x
match
match式はある変数の値が続く評価値に一致するか確認するために利用します。
可変バインディング、ADTコンストラクタ、またはワイルドカード_シンボルに一致させることができます。
※これは型が可変な値を返す処理に対して必要な処理となります。
match x with
| pattern_1 =>
statements ...
| pattern_2 =>
statements ...
| _ => (*Wildcard*)
statements ...
end