2019-11-09に更新

うぇーい えーい おー☆(^~^)

だらだら 公開下書き

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 プログラムの書き方で 大きな分かれ道があると思うんだが☆、」

Case of return:

var (name, price) GetFruit();

Case of callback:

MatchFruit((name, price) => {
});

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 返り値で戻すのと、コールバック関数に渡すの、どういうメリットの違いが出てくるんだぜ☆?」

うぇーい えーい おー☆(^~^)

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑それより この記事のタイトルは 何とかならんのか☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 下書き中の記事も ポータルに タイトルが載ってしまうのよ!」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 そんなポータル どうでもいいんで……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 公開 なんか選ぶからだろ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 世界に 公開 したいだけで、Crieit の ポータル なんかに公開されても おもろくない……☆」

Case of return:

var (name, price) GetFruit();
Buy(name, price);

Case of callback:

MatchFruit((name, price) => {
    Buy(name, price);
});

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 まず、シーケンスになるか、ネストになるか が気になるが……☆」

Case of return:

var (name, price) GetFruit();
var food = Buy(name, price);

Case of callback:

MatchFruit((name, price) => {
    Buy(name, price, (food) => {
    });
});

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑繰り返したときに どういうメリット、デメリットがあるだろうか☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 関数型言語の 閉じかっこの集まりは 見苦しいのよ」

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) => {
        });
    });
});

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ↑すると ネスト型は デメリットしか見えないが……☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 ネスト型は 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
        });
    });
});

KIFUWARABE_80x100x8_01_Futu.gif
「 ↑いちいち switch文 を書かなくていい☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 有限に 右に深くならないかだぜ☆?」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 シーケンス型も 有限に下に深くなるわよ」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ネスト型は いったん分岐すると 再び合流することは できなくないかだぜ☆?」

KIFUWARABE_80x100x8_01_Futu.gif
「 そのときは シーケンス型に戻れだぜ☆ 合流するだろ☆」

KIFUWARABE_80x100x8_01_Futu.gif
「 コンピューターのメモリは シーケンスだろ☆
アセンブラも シーケンスだろ☆
シーケンスが 自然だぜ☆」

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 関数型言語を使いこんでいるやつが 身近にいないからな☆
しばらく わざわざ ネスト型 を使って 使いこんでみるかだぜ☆」

break, continue, return しにくい……☆(^~^)

Case of return:

loop
{
    if (Sleep()) {
        break;
    }
}

Case of callback:

loop
{
    Sleep(
        () => {
            goto out;
        },
        () => {
        });
}
out:

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 ネストされたら ループから抜けづらいんだけど☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 うーん」

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:

KITASHIRAKAWA_Chiyuri_80x100x8_01_Futu.gif
「 自由変数 working を用意するとループと抜けれるが、
ループから見れば 束縛変数 working ☆」

OKAZAKI_Yumemi_80x80x8_02_Syaberu.gif
「 ループに名前を付けたみたいで 良いんじゃない?」

<書きかけ>

何度でもクリック!→

むずでょ

光速のアカウント凍結されちゃったんで……。ゲームプログラムを独習中なんだぜ☆電王戦IIに出た棋士もコンピューターもみんな好きだぜ☆▲(パソコン将棋)WCSC29一次予選36位、SDT5予選42位▲(パソコン囲碁)AI竜星戦予選16位

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

むずでょ の最近の記事