2010-02-01から1日間の記事一覧

ヌルアブル

末尾がNでない変数にnullを入れたらエラーになる。

名前体

複数の変数を持つ関数は無名のコンポーネントのようにふるまう。コンポーネント一個入れれば名前があっていれば自動で代入される。変換をやりやすくするために名前体を定義することが出来、名前体からコンポーネントへの変換も定義出来るし、名前体にキャス…

コレクション

コンポーネントはコレクションが必要なメソッドを実装していれば勝手にコレクションになっている。[E],[C],[L],[D]とあるのは前に書いた。[E]みたいなのはコンポーネントやデータのメンバにすることは出来無い。出来るのは具体型だけである。基本的にリード…

代入自動化

より大きな集合への代入自動化もある。データを継承元から継承先に代入したり、コンポーネントの変換が定義されている場合に、変換先から変換元に戻したり。 func Hoge(Multi m, A a){ m <- a }

データの多重継承

多重継承は卑猥な問題をいろいろはらんでいてめんどくさいので手動定義も出来るようにする。 data A{ int ID; string Name; } data B{ string Name; int Age; } data C{ int ID; int Age2; } data Multi : A, B, C{ A: int ID; B: string Name; int Age; C: …

コンポーネント is 名前体

コンポーネントを名前体にすればいい。 コンポーネントを引数に取ることができるしメンバにできるし返すことが出来る。 コンポーネントは同名で代入可能なメンバを持っていれば入れられる。データには継承関係があるし、コンポーネントの代入可能であるルー…