LISP単語

リスプ

この項プログラミング言語について記述しています。声優ユニットについては『LISP(声優ユニット)』を参照してください。


この項検閲されています。一部の文章は検閲により読めなくなっている場合があります。

LISPとは、そびえ立つ括弧の山プログラミング言語である。パソコン天地創造具や建材に使うが、一般人には真似できない。

(概 要)

名前はLots of Insane Stupid ParenthesesLISt Processing省略である。

その歴史1958年にまでさかのぼり、当時MITにいたジョン・マッカーシーによって発明された。プログラミング言語としては2番に古い(最古はFORTRAN1957年)。また初の関数型プログラミングである。ガベージコレクションファーストクラス関数レキシカルクロージャなどをいちく導入していった言であるため、現存するほとんどのプログラミング言語に影を与えている。

非常に単純なため、純なLISPの実装はほぼすべてのプログラミング言語実装と言われている。

'(文 法)

リストの書き方は、例えば先頭要素「動画」、第二要素「コミュニティ」、第三要素「大百科」ならば、

(動画 コミュニティ 大百科)

と書けばよい。これはS式(symbolic expression)というポーランド記法として評価(eval: evaluation)され、「動画」という関数に「コミュニティ」 「大百科」という2つの引数を与えたものとして計算される。の記述の引数として用いる場合は先頭に命ではないことを示すためシングルクオーテーションが必要になる。

リスト()はnil(noneの砕けた英語表現)で表し、偽値の偽の値としても用いる。nilでない値はと扱われる。

他、LISPに必須な命は以下である。

これらを組み合わせていけばチューリング完全が実現できる。しかし、現実にはこれだけでは実用にならないので一般には様々な命を追加した方言が使われている。方言については下記の項を参照のこと。

(LIS (P '(e r))

LISPを使う者のことをLISPer、Lisperなどと呼ぶ。スーパーリムだったり多い日も安心だったりはしない。

(方 '(言))

LISPに必要な要素は少ないので、実用的に使うために拡したり、分野ごとに特殊化したりと、様々な方言がある。別にLISPer同士の仲が悪いわけではない。Lisp-1とLisp-2で論争が起きたり、Common LisperがSchemerをdisっていたり、Schemerがfuncall#'をゴミ箱に投げ捨てようとしていたり、R6RS Schemeの策定でScheme界で大揉めしたりしても、決して仲が悪いわけではない。

Lisp-1とLisp-2

Lisp方言を分類するときにLisp-1とLisp-2という区別をすることがある。関数変数名前空間が共通なのがLisp-1で、別々なのがLisp-2である。

名前空間が1つなのがLisp-1(Scheme, Clojureなど)で、2つなのがLisp-2(Common Lispなど)である。ね、簡単でしょ?

Emacs Lisp

文句なしに、世界で最も「何でLISPなのよ…」と思われている使われているLISP。

世界で最も人気のあるテキストエディタのひとつであるEmacsで使われている方言で、この方言の処理系が搭載されていることで、Emacsは非常に優れた拡性を持つ。

Scheme

1975年に考案された。言コンパクトさを重視している。黒板での動作に定評がある

などで多くの後続の言に影を与えた。

現行規格R6RSの策定の際、Sussmanにキレられたり、要処理系開発者に軒並み反対されたり、対抗規格のERR5RSを立ち上げられたり、あわや暗黒時代の到来か、という黒歴史を演出した。

Common Lisp

1980年代から策定が始まり、1994年に正式な規格が制定された。実用性重視で仕様使ってる人間でも覚えられない程大きい。C++仕様の巨大さ、複雑さで戦える選ばれた戦士のひとり。

Schemeと対照的に、それ以前のLISPからの影が強く、関数の名前などは、多くを従来のものから受け継いでいる。また、産業界からの影も大きく、コンパイラ最適化の制御、ステップ実行、ブレークポイントなどといった、実用的な機仕様で定義されている。

Clojure

2007年に登場したコーヒーからの新たな刺客。設計者は持ちニートRich Hickey。Java仮想マシン上で動作する。

Javaとの連携の容易さと、ソフトウェアトラザクショナルメモリによる並行コンピューティングが特徴。データ構造がイミュータブルであり、副作用を避ける関数寄りの設計。また、パターンマッチングなどの要素も柔軟に取り込んでいる。

Arc

2001年に開発が始まり、2008年に最初のリリースをされた。こちらは本当の金持ちexitが作った。

構文木の要素を最小限にするというコンセプトに基づいて、大胆な変更がされている。文法の導入をあまり好まないLISPコミュニティの中にあって、前述のコンセプトに当てはまれば、新しい文法も柔軟に取り入れる方針。

(処 (理 系))

LISPと表記するのが正式とされているが、オリジナルのLISPを全て大文字で表記し、方言はLispと表記するという話exitもある。

(関 (連 '(動) 画))

ニコスクリプトを用いてLISP処理系(注:非常に重い)およびその解説。

作者は「魔法 リリカLisp」の開発者でもある。

また、Shibuya.lispexit(渋谷を中心としたLispコミュニティ)で定期的に開催されているテクニカルトークの様子をニコニコ動画で見ることができる。

(((か ん) (れ () ん)) (し '('(ょ) '(う) '(ひ) '()) '(ん)))

(関 (連 (項 '(目))))

【スポンサーリンク】

スマホ版URL:
https://dic.nicovideo.jp/t/a/lisp

この記事の掲示板に最近描かれたお絵カキコ

お絵カキコがありません

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

LISP

23 ななしのよっしん
2014/10/12(日) 16:58:43 ID: k4Rtj8t9R+
>>22
プロに嫌われたことってあったっけ?ちゃんと標準規格があるし、ポジションはそう悪くないはずだが。

普及しなかった、というか他に敗北した理由は簡単で、首がいなかったのと世界C言語まみれになったから。
というのは、例えば世間でJavaがOKになったのは全盛期Sunが頑ってプッシュしたからで、Java自体が良いか悪いかというのは半分ぐらいの要素というような話。
Lipsは今も昔も群雄割拠の世界なので、ある意味絶対にメジャーにならないことを宿命付けられた言と言える。一方どんなところにも雑草のように発生する特性ゆえ今後も生き残り続けることは確実。
24 ななしのよっしん
2014/11/25(火) 00:23:17 ID: BbOAOgv7wD
多分だけど一番成功したLISPRuby

…とか言ったら怒られるだろうか
25 ななしのよっしん
2014/11/29(土) 01:56:54 ID: rtF7ndyljO
括弧キモイとか言ってずっと避けてきたけどごめんなさい


Clojure書くの楽しいです
26 ひろや
2015/09/16(水) 01:36:24 ID: e3Zd2QK2+6
CARCDRを組み合わせたC[AD]*R関数が定義されていたりする
理系もあって面い。CADRとかCDARとかCAAAARとか
が定義されていて,さらっとCRも定義されていてこれは
単なるCOPY
27 ななしのよっしん
2016/02/18(木) 01:12:08 ID: STdXgBdz8h
Lost In a Sea of Parentheses
28 ななしのよっしん
2016/11/23(水) 22:20:21 ID: c1EnTTz5rd
明日からLISPの実習が始まる…
29 ななし
2017/01/24(火) 23:04:06 ID: 4bBUyR8pz5
理系にRacket(Mzscheme)も追加してほしいな
clojure使ってるからracket使ってないけど興味あるんだよねえ
30 ななしのよっしん
2017/03/23(木) 21:26:09 ID: 1OsXuLldba
うちだとAutoCADの機開発でAutoLispを使ってるけど、他の会社だとどうなんだろうな
やっぱ.NETでの開発が流になってるのかな
31 ななしのよっしん
2018/03/03(土) 15:58:33 ID: po99Dr3fLx
ってか一つのジャンルだよねlispと言う
コレからも変幻自在に進化しつつ生き残っていくんだろうな
新しいプログラミングの概念が生まれたら→lisp実装すれば良いじゃない!の世界だから
32 ななしのよっしん
2019/01/15(火) 02:44:38 ID: TnGyx9fyyW
Common Lispレアリティが低すぎるから衰退したのかな…

急上昇ワード