CatyScriptの構成要素
お絵描きするにも操作的意味論するにも列挙しないと。
- 基本コマンド呼び出し
- スカラーリテラル(基本コマンド扱い)
- 変数参照(ほぼ基本コマンド扱い)
- 定義されたコマンドの呼び出し
- 配列構成(直積 その1)
- オブジェクト構成(直積 その2)、doもある
- タギング(直積 その2)、>@ もある
データ構成のレベルでは以上、タギング以外はJSONデータの構成。
次に圏論的なもの。
- パイプ結合、';'もある。
- when分岐(直和)、otherwiseワイルドカード'*'もある
- each、リスト関手[T*]の射部分
メタコマンドによる制御。
- call
- forward
- start
予定している機能、http://d.hatena.ne.jp/m-hiyama-memo/20101018/1287358225 参照。ただし、「set, doset構文の導入」はもうやる気なし。http://d.hatena.ne.jp/m-hiyama-memo/20101018/1287358319 にはrepeatの記述。
- begin
- repeat
- 例外処理
- throw
- 論理パイプ
分類しにくい。
- 代入演算子 '>'
- take
- time
まだよくわからない。
- undefsafe機能
- フォーリンデータ型の扱い
SEVC機械という抽象機械を考えている。
- Stack (Call Stack)
- Environment (Context)
- Value
- Code
[追記] uncloseもあった。→ http://d.hatena.ne.jp/m-hiyama/20110920/1316512670 。
あと、=[ , ] で書く予定の並行タプル=射の直積。
関係するURLを並べておく。
- http://d.hatena.ne.jp/m-hiyama/20090902/1251869950
- http://d.hatena.ne.jp/m-hiyama/20101221/1292895388
- http://d.hatena.ne.jp/m-hiyama/20091117/1258449015
- http://d.hatena.ne.jp/m-hiyama/20091110/1257819178
- http://d.hatena.ne.jp/m-hiyama/20091107/1257584135
- http://d.hatena.ne.jp/m-hiyama/20091104/1257296704
- http://d.hatena.ne.jp/m-hiyama/20091104/1257327232
[/追記]