generated at
Kokaの例: global変数


koka(js)
// 値としてeffectを用意 effect val width : int // `width`を内部で使っている関数。`width`は引数で受け取っているわけではない fun pretty-internal( line : string ) : width string line.truncate(width) // 上記の関数を呼び出すhandler。width=40と設定して実行している fun pretty-thin(d : doc) : string with val width = 40 pretty(d)
値をeffectで表現することで、外側から値のinjectionができる
安全なglobal変数とも見れる
引数でバケツリレーする必要もなく、globalなmutable変数とも違う
型で明示されるので設定し忘れがない
pretty-thin 以上の呼び出し元からは width を変更することはできない
スコープが限られている
そのglobal変数は、どこからでも変更可能、にはなってなくて安心安全