基本的な値

6.6 リスト


最後のデータ構造、リスト。
これまで何度も出てきたので、復習の意味も兼ねて読みました。

リスト内包表記について

何となく、RubySmalltalkのブロックを思い浮かべてしまいます。でも全然違いますね。
今の私の理解はこんな感じ。


リスト内包表記はリストリテラルのようなもの。
ただし、リストリテラルは直値で表現するのに対して、リスト内包表記は条件付きで表現出来る。
map関数やfilter関数を使ってリストを生成するのと同じように生成することが出来る。


何となくですが、C言語ではこんなことを意味するのかなぁ。

int create(int param) {
    if(param < 0) {
        return 0;
    } else {
        return (param < 100) ? param + 1 : 100;
    }
}

void func(int param) {
    int array[] = {create(param), create(param + 1), create(param + 2), create(param + 3)};

    // 省略
}


宣言時に複雑な計算をする感じ。C言語でもあまり褒められたコードではありませんねぇ。