「 プログラムの書き方で 大きな分かれ道があると思うんだが☆、」
Case of return:
var (name, price) GetFruit();
Case of callback:
MatchFruit((name, price) => {
});
「 返り値で戻すのと、コールバック関数に渡すの、どういうメリットの違いが出てくるんだぜ☆?」
うぇーい えーい おー☆(^~^)
「 ↑それより この記事のタイトルは 何とかならんのか☆?」
「 下書き中の記事も ポータルに タイトルが載ってしまうのよ!」
「 世界に 公開 したいだけで、Crieit の ポータル なんかに公開されても おもろくない……☆」
Case of return:
var (name, price) GetFruit();
Buy(name, price);
Case of callback:
MatchFruit((name, price) => {
Buy(name, price);
});
「 まず、シーケンスになるか、ネストになるか が気になるが……☆」
Case of return:
var (name, price) GetFruit();
var food = Buy(name, price);
Case of callback:
MatchFruit((name, price) => {
Buy(name, price, (food) => {
});
});
「 ↑繰り返したときに どういうメリット、デメリットがあるだろうか☆?」
Case of return:
var (name, price) GetFruit();
var food = Buy(name, price);
var taste = Eat(food);
Case of callback:
MatchFruit((name, price) => {
Buy(name, price, (food) => {
Eat(food, (taste) => {
});
});
});
「 ネスト型は switch構文 のようなものを兼ねるぜ☆?」
Case of return:
var (name, price) GetFruit();
var food = Buy(name, price);
var taste = Eat(food);
switch(taste) {
case "bad":
break;
case "nice":
break;
default:
break;
}
Case of callback:
MatchFruit((name, price) => {
Buy(name, price, (food) => {
Eat(food, () => {
// bad
}, () => {
// nice
}, () => {
// default
});
});
});
「 ネスト型は いったん分岐すると 再び合流することは できなくないかだぜ☆?」
「 コンピューターのメモリは シーケンスだろ☆
アセンブラも シーケンスだろ☆
シーケンスが 自然だぜ☆」
「 関数型言語を使いこんでいるやつが 身近にいないからな☆
しばらく わざわざ ネスト型 を使って 使いこんでみるかだぜ☆」
Case of return:
loop
{
if (Sleep()) {
break;
}
}
Case of callback:
loop
{
Sleep(
() => {
goto out;
},
() => {
});
}
out:
Case of return:
var working = true;
while( wolking )
{
if (Sleep()) {
working = false;
} else {
}
}
Case of callback:
var working = true;
while( wolking )
{
Sleep(
() => {
working = false;
},
() => {
});
}
out:
「 自由変数 working を用意するとループと抜けれるが、
ループから見れば 束縛変数 working ☆」
<書きかけ>
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!