この例は、データを追加する場合であったが、不要となったデータを取り除く場合にも、データの場所の移動が必要である。アパート入居者に回覧板を回すことを考える。この中で、入居者が増えたり・減ったりした場合、どうすれば良いか考える。通常は、自分の所に回覧板が回ってきたら、次の入居者の部屋番号さえわかっていれば、回覧板を回すことができる。]このように次のデータの場所という概念を使うと、データの順序を持って扱うことができる。}この方法を取れば、途中にデータ入れたり、抜いたりする場合に、データの移動を伴わない。配列をベースにしているため、配列の上限サイズを超えて格納することはできない。リスト構造リスト構造は、データと次のデータへのポインタで構成され、必要に応じてメモリを確保することで、配列の上限が制限にならないようにする。次のデータへのポインタでつなげているため、途中へのデータ挿入が簡単にできるようにする。上記のプログラムでは、(struct...)malloc(sizeof(...))を何度も記載し、プログラムが分かりにくいので、以下に示す補助関数を使うと、シンプルに記載できる。;授業アンケートで板書の字が読みづらいといわれつつも、パッパッパッってコードを書いていると「その関数名読めない...」とツッコミが。意味ですがな...と話しつつ、例年どおり「どーでもいいウンチク」を話す。LISPと関数型プログラミング言語LISPの歴史は長く、最古のFORTRAN,COBOLに次ぐ3番目ぐらい。最初は、人工知能のプログラム開発のための関数型プログラミング言語として作られた。特徴として、データもプログラムもすべてリスト構造(S式)で表すことができ、プログラムは関数型に基づいて作られる。関数型プログラミングは、処理を関数をベースに記述することで「副作用を最小限にすることができ」、極端な話をすればループも再帰呼出しで書けばいい...。miniOrange。