daitai-lang クイック・リファレンス
一枚物の要約です。規範的仕様は v1.4 仕様 を参照してください。
キーワード
class interface enum function method
static return if else for
in while match case val
this import module implements extends
代数キーワード (v1.2 以降)
MONOID GROUP RING SEMIRING LATTICE CATEGORY
FUNCTOR APPLICATIVE MONAD COMONAD FREEMONAD ARROW
NATURALTRANSFORM COALGEBRA YONEDA ADJUNCTION GALOIS
TOPOS OPERAD MONOIDALCATEGORY ENRICHEDCATEGORY
リテラル
42 -- Int
3.14 -- Float
true, false -- Bool
"hello" -- String
None -- Optional<T> (空)
Some(x) -- Optional<T> (値あり)
/pattern/flags -- Regex
|0⟩, |1⟩, ⟨ψ| -- bra-ket (v1.3 以降)
効果
例外はありません。失敗しうる演算は Result<T, E> を返します:
function parseInt(s: String) -> Result<Int, ParseError>
null ポインタもありません。不在は Optional<T> です:
function find(xs: List<T>, p: T -> Bool) -> Optional<T>
暗黙の変更もありません。変更は Step の背後に置かれます:
function tick(state: GameState, dt: Duration) -> GameState =
Step(state, .player.position, dt * state.player.velocity)
次に読むもの
- 完全仕様 (v1.4) — 規範的参照。
- bra-ket プリミティブ — リテラルの意味するところ。