- 追加された行はこの色です。
- 削除された行はこの色です。
* Essenの開発メモ#0003
-(by [[K]], 2017.05.01)
** 基本的な文法(案)
-LISPにはしたくない
--まずLISPは素晴らしい言語である。シンプルな構文だけで構成されているのに、一通りのことは全部できる。というか他の言語よりもいろんなことがうまくできる。
--しかし、LISPは読みにくい。かっこが多すぎる。私にとっては直感的ではない。だからLISPに近い機能を持ちつつ、でもC言語に近い記法を持つような、そんな言語にしたい。
--いうなれば「受け入れ可能なLISP」を目指す。
--Rubyも似たような発想に基づいていると聞いたことがある。
-代入は普通にイコールで
a = 1
-計算は普通に書く
b = a * 2 + 1
-配列はこんな風に書きたい
b = [1 2 3 4]
--角かっこではなく、丸かっこでもよい。
b = (1 2 3 4)
c = [1 2 3 4]
d = (1 2 3 4) // 角かっこではなく、丸かっこでもよい
-配列の要素へのアクセスはC言語みたいに角かっこを使う
e = c[2] // c(2) でもよい
-中かっこは文字列になる(文脈情報も内部では持っていて、それを使って変数スコープを解決する)
f = { a = b - 1 }
--ただの文字列になるので、ifやwhileの { } はただの文字列を渡していることになる。ifやwhileは実は関数になっていて、渡された文字列をevalで実行するかどうかを決めている。
-構造体は配列の値の前にメンバ名を書く。
g = [abc:123 def:456 name:"kawai"]
--これでg.abcは123になるし、g.defは456になるし、g.nameは"kawai"になる。
--g["abc"]というようにしてアクセスすることもできる。
* こめんと欄
#comment