Expand description

defines Expr (Expression, the minimum executing unit of Erg).

Structs

Application ex. Vec Int of Option Vec Int

DictはキーつきArray(型としては別物)

デコレータは関数を返す関数オブジェクトならば何でも指定できる e.g. @(x -> x)

リテラルに実際の値が格納された構造体(定数畳み込み用) ArrayやDictはまた別に

represents a local (private) variable

Once the default_value is set to Some, all subsequent values must be Some

引数を取るならTypeでもSubr扱い

e.g. obj.0, obj.1

symbol as a left value

Enums

valid expression for an argument of polymorphic types 多相型の実引数として有効な式

Expression(式)

関数定義や無名関数で使えるパターン

represents a declaration of a variable

  • Array: [Int; 3], [Int, Ratio, Complex], etc.
  • Dict: [Str: Str], etc.
  • Option: Int?, etc.
  • And (Intersection type): Add and Sub and Mul (== Num), etc.
  • Not (Diff type): Pos == Nat not {0}, etc.
  • Or (Union type): Int or None (== Option Int), etc.
  • Enum: {0, 1} (== Binary), etc.
  • Range: 1..12, 0.0<..1.0, etc.
  • Record: {.into_s: Self.() -> Str }, etc.
  • Func: Int -> Int, etc.
  • Functions

    Type Definitions

    type variables