Lispについて深く理解する
public.icon
https://gyazo.com/f0a34176e02cd9d1ad126299760e48c0
Lispは関数型?tkgshn.icon
そうっぽい
LISP 言語とは、1960 年代初期にジョン・マッカーシー氏によって発表された最初の関数型プログラミング言語です 近年は C 言語を中心とした手続き型と、手続き型をベースにした Java などのオブジェクト指向型言語が中心となっています。 そんな中、LISP の関数型プログラミングは新しい刺激となるに違いありません。
Lisp, Prologなどの言語では, 記号 (シンボル,symbol)をデータとして取り扱うことができる. 記号を取り扱える言語は 記号処理言語 と呼ばれることがある.
関数という概念
プログラミング言語は「手続き型言語」「関数型言語」「論理型言語」「オブジェクト指向言語」などに分類することができる。
Lispは関数型言語に分類される。 関数を組み合わせることによりプログラミングする言語なのである。
関数とは何なのかを考えてみよう。 数学の世界の関数を簡単に言うと「いくつかの値を与えると、ある1つの値が定まるという関係」である。 プログラミング言語の世界の関数は一般的に 「0個以上の値を与えると、何かをして、1つの値を返してくれるもの」である。 与える値を「引数」「parameter」「argument」、返ってくる値を「返り値」などと呼ぶ。
「いくつかの値を持って関数の頭に飛んで行って、中身を実行して、値を1つ持って帰ってくる」 という認識は、手続き型言語の考え方である。 Lispではこういう認識は捨てて欲しい。数学と同じ考え方で構わない。
Lispでは、オブジェクト指向よりも高次の抽象化を実現しているため