Essen3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* プログラミング言語 Essen #3
-(by [[K]], 2016.08.07)
** これはなに?
-まずは[[Essen]]と[[Essen1]]を読んでね。ここは続きを書き...
-このページでは、なぜEssenがこういう仕様を目指したのかと...
** (1) scanfから考えてみる
-scanfは代入したい変数が引数側にある。[[K]]はこれがどうに...
--scanf("%d %d", &a, &b);
-このaやbは関数の返値として記述したい。その方が[[K]]にと...
--(a,b)=scanf("%d %d");
-Essenでは、この形式を目指したけど、それはうまくいかなか...
--&(a,b)=scanf("%d %d");
-C言語などの場合、scanfがどんな型を返すのか定義時に固定し...
--stdarg.hによって引数のほうはかなり自由に書けるけれど、...
-そこでEssenは関数がどんな型を返すのかを固定しないことに...
-しかしこの仕様はコンパイラを作るうえでは高速化の障害にな...
** (2) 変数の交換
-変数を交換する関数swapがあったとする。C言語なら swap(&a,...
--もちろん&を付けることによって、この関数呼び出しによって...
-しかしやはり引数のほうが書き換わるという仕様は[[K]]には...
--&(a, b) = (b, a)
-これはわかりやすいし簡潔だ。ちなみに同様のことはRubyでも...
-もちろんEssenでも、 swap(a, b) みたいな書き方をすること...
** (3) セミコロンの省略
-現在のEssenの仕様では、文末のセミコロンは省略できる。そ...
a = 3 b = 4 c = 5
-みたいな書き方ができる。これは気持ち悪いと感じるかもしれ...
-まず、セミコロンの省略は「可能な選択肢」なのであって「義...
-なぜこんな仕様を採用したのか。・・・初期のEssenではif文...
-加えて、行の末尾のセミコロンが省略できたら、ちょっと便利...
** (4) 関数宣言の構文
-Essenの関数宣言構文は以下のとおりである。
func = function(x, y, z)
{
...
}
-つまりfunctionが関数を作る演算子で、その結果を変数funcに...
-関数も第一級のオブジェクトとして扱われるべきだし、それに...
** (5) ローカル変数の定義#
-当初Essenでは、未定義の変数への代入を発見したら、無条件...
-しかしそれはやめた。なぜなら、ローカル変数域に作ったらい...
-さらに、あるコード片があったとして、そのスコープの外側で...
-ということで、ローカル変数は初出時に#をつけさせることに...
* こめんと欄
#comment
終了行:
* プログラミング言語 Essen #3
-(by [[K]], 2016.08.07)
** これはなに?
-まずは[[Essen]]と[[Essen1]]を読んでね。ここは続きを書き...
-このページでは、なぜEssenがこういう仕様を目指したのかと...
** (1) scanfから考えてみる
-scanfは代入したい変数が引数側にある。[[K]]はこれがどうに...
--scanf("%d %d", &a, &b);
-このaやbは関数の返値として記述したい。その方が[[K]]にと...
--(a,b)=scanf("%d %d");
-Essenでは、この形式を目指したけど、それはうまくいかなか...
--&(a,b)=scanf("%d %d");
-C言語などの場合、scanfがどんな型を返すのか定義時に固定し...
--stdarg.hによって引数のほうはかなり自由に書けるけれど、...
-そこでEssenは関数がどんな型を返すのかを固定しないことに...
-しかしこの仕様はコンパイラを作るうえでは高速化の障害にな...
** (2) 変数の交換
-変数を交換する関数swapがあったとする。C言語なら swap(&a,...
--もちろん&を付けることによって、この関数呼び出しによって...
-しかしやはり引数のほうが書き換わるという仕様は[[K]]には...
--&(a, b) = (b, a)
-これはわかりやすいし簡潔だ。ちなみに同様のことはRubyでも...
-もちろんEssenでも、 swap(a, b) みたいな書き方をすること...
** (3) セミコロンの省略
-現在のEssenの仕様では、文末のセミコロンは省略できる。そ...
a = 3 b = 4 c = 5
-みたいな書き方ができる。これは気持ち悪いと感じるかもしれ...
-まず、セミコロンの省略は「可能な選択肢」なのであって「義...
-なぜこんな仕様を採用したのか。・・・初期のEssenではif文...
-加えて、行の末尾のセミコロンが省略できたら、ちょっと便利...
** (4) 関数宣言の構文
-Essenの関数宣言構文は以下のとおりである。
func = function(x, y, z)
{
...
}
-つまりfunctionが関数を作る演算子で、その結果を変数funcに...
-関数も第一級のオブジェクトとして扱われるべきだし、それに...
** (5) ローカル変数の定義#
-当初Essenでは、未定義の変数への代入を発見したら、無条件...
-しかしそれはやめた。なぜなら、ローカル変数域に作ったらい...
-さらに、あるコード片があったとして、そのスコープの外側で...
-ということで、ローカル変数は初出時に#をつけさせることに...
* こめんと欄
#comment
ページ名: