No.5ベストアンサー
- 回答日時:
>最近プログラミングについて学ぼうと思っていろいろ調べてるのですが、その中でLispというものを見つけました。
おお、素晴らしい検索能力ですね(笑)。
>関数型プログラミング言語であることや人工知能の開発に使われているということは分かったのですが、他にどのようなことができるのでしょうか?
まあ、極端な事を言うと、「何でも出来ます」よ(笑)。
もっとも、汎用プログラミング言語ですと、全部そう答えられるでしょうがね。
>C言語に代わってソフトウェアの開発などもできるのでしょうか?
できますね。人によっては「作りやすい」って言う人も多いです。
ただ、長らくWindowsではCの天下だったんで、まあそれで商用ソフトウェアの数が少ない、と。歴史的な影響ですね。
(原則、Lispは昔はハイパワーの計算機上でしか動かなかった、と言う限界があったんですが、現代ではPCでも楽々動いてくれます)
ええと、お薦めの処理系ですが、これが難しい。一般にLisp、と言っても色々な方言があります。
他の人も書かれていますが、例えばEmacsで動くEmacs Lispや、Schemeと言う方言。また、Javaで書かれて最近登場したClozureと言う方言も人気が出てきてるので「どのLispなのか?」と言うのが結構重要なんです。他にも中学生のプログラマが一生懸命作ってるT216(tizp)とか言うのもあって、「百花繚乱」なんです(笑)。MicrosoftのCとCodeGearのCの差、なんて目じゃない程なんです。それらはどっちにしても「C言語」ですが、Lispの場合、本当に「方言だらけ」なのです。世界は実はLisp系言語に溢れています(笑)。
(これが意味するのは、ある程度プログラムを覚えると「Lisp系言語をデザインしたくなる」人が意外と多い、と言う事を表しています)
そんな中で、ある意味「業界標準」のANSI Common Lispを取り上げる方針とします。
まずは処理系。
多分今だと、WindowsだとCLISP
CLISP:
http://clisp.cons.org/
が人気あるでしょうね。UNIX界隈だったら
SBCL:
http://www.sbcl.org/
ってのが人気があります。
いずれにせよ、単独のインタプリタ/コンパイラを手に入れても何をどうして良いやら分からないでしょうから、Lispboxと言う「オールインワン」の環境を推薦しておきましょう。
Lispbox:
http://www.gigamonkeys.com/lispbox/
これはCommon Lisp処理系とEmacsとSLIMEと呼ばれる「Lispプログラム開発ツール」を全部ワンパッケージに納めたものです。最初はとっつきにくく思うかもしれませんが、一旦慣れてきたら「他の環境に移るのが」辛くなるほど、です。極めて強力な「パッケージ」ですね。
対応OSもWindows、Linux、Macと揃ってるんで、扱いやすいと思います。かつ、これでEmacsの基本操作も学べると思います。
テキストとしては、現時点では次の本が多分一番良いのではないでしょうか。
実践Common Lisp:
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=97 …
割に大手の本屋だと置いてると思うんで、手に取って確認してみて下さい。
これが難しい、と思うのでしたら、サイエンス社の
これがLispだ!
http://www.saiensu.co.jp/?page=book_details&ISBN …
辺りが入手が比較的簡単なんで、手頃だと思います。
こんな感じでしょうかね?
Welcome to the World of Lisp!
Lispについてよくわかりました。
Lispとはそんなにたくさんあるものなんですね…。
開発ツールや書籍も紹介していただき本当に親切にありがとうございますm(_ _)m
とても助かりました。
Lispの世界を楽しみたいと思います(笑)
No.4
- 回答日時:
おっと。
かなりの誤解があるみたいです。
今、お勧めするとしたら、GCL(GNU Common Lisp)という処理系です。
これは、KCL(Kyoto Common Lisp)を基にしています。
コンパイラあります。
Windows用のバイナリーコードも作成できます。
日本語使えます。
関数名も日本語で付けられます。
Common Lispで、かなり手続き的な記述も出来るようになりましたが、基本的には関数型言語と呼ばれる言語です。
プログラムはλ計算という考え方を基にしています。
Common Lispなら、他の言語で書けるようなアプリケーションを書くことは出来ますが、手続き的な部分が主となるプログラムでしたら、Lispなんて使わないことをお勧めします。
emacs LISPはかなり特殊な処理系です。
特に変数のスコープなどが他の一般のアプリケーションを書くためのLispとは異なります。
はっきり言って、emacsのカスタマイズ専用だと思ってください。
コンパイラがあって日本語も使えるというのは便利そうですね。調べてみたいと思います。
アプリケーションを作るとしたら手続き型と関数言語型を使うかで違うものなんですね。使い分けたいと思います。
Emacsの特徴も教えていただきありがとうございました。
No.3
- 回答日時:
インタープリターです。
古くはBASIC、今ではperl,ruby,phthonの仲間。
だからWeb/CGIにも使えます。
perlなんかと比べると大規模なシステムもOK
しかし、有名な処理系はほとんど日本語不可です。
なんと、コメントに漢字コード入れるのも不可なのが多い。
C言語の代わりにはなりません。
C と対極の言語。 面白いですよ。
とりあえず テキストエディタを Emacs 系に変えてみてください。
Windowsだと Meadow がお勧め。
これのマクロ? が Lispです。
これを使いこなせるとかなりはったりが利きます。
少なくとも国立大の情報系大学院生程度には見える。
Web/CGIにも使えるというのは初めて知りました。
「面白い」というのを聞いて興味が増しました。
頑張ってみたいと思います。
それとはったりが利くとはおもしろいですね(笑)
情報ありがとうございました。
No.2
- 回答日時:
Lisp は記号を処理する機能が (もとから) 備わっているので, 「記号を処理するプログラム」は C より書きやすいです. それと「人工知能」の観点から, 昔から「数式処理」でしばしば用いられています. 例えば, Maxima は (実質的に) Lisp の処理系の上で動いています.
なお, 本来の意味からすると Lisp を「関数型言語」とするのは間違っています. 端的に言うと, C を「関数型言語」とするのとほとんど同じように間違いといっていいでしょう.
Lispの特徴がわかりました。
関数型言語では無いのですか…。
そう書かれているサイトをいくつも見つけたのでそうかと思っていましたが違うのですね。
回答ありがとうございました。
No.1
- 回答日時:
向き不向きを別にすれば、どんなプログラミング言語でもどんなことでも出来ます。
Cと比べると、LISPは抽象的に設計されたが、Cはコンピュータの仕組みを元に設計されたので、
・Cの方がコンピュータと相性が良く、高速なプログラムが書きやすい
・LISPの方がコンピュータの仕組みの制約が無く自由に考えられる
という性格の違いがあります。
「画面に画像を表示する」とか「ネットワークで通信を行う」とかいうようなコンピュータの制御をどんな事が出来るかは言語というよりは、ライブラリの機能です。言語+ライブラリ(+開発ツール)を「処理系」といい、処理系により出来ることは違います。
例えば、「C言語にネットワーク通信の機能は含まれていますか?」の答えは「ノー」ですが、Visual C++ とか Linux上のgcc+glibとかの処理系にはネットワーク通信機能が含まれています。
Emacsというエディタにはemacs-lispというlispの一方言の処理系が組み込まれていますが、これには色々組み込まれています。emacs-lispで書かれた五目並べやテトリスゲーム、メールソフト等も内蔵されています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COBOLでのNOT = の AND条件
-
C言語、C+、C++、C#の違い
-
VCとVC++
-
VBSとWSHは読み方が違うだけで...
-
UNITY Float型の接尾辞fって
-
C++は何に適している?
-
UWSCはどのプログラミング言語?
-
TO_CHARで小数点以下がある場合...
-
一般的な市販PCゲーム(美少...
-
Transitional/ENとは
-
C言語以外ならバッファオーバー...
-
vbaとc言語の関連性について
-
今後主流となるプログラミング...
-
少しでも『プログラム言語』を...
-
.Net Framework APIがあればMFC...
-
それぞれの言語の持っている特...
-
QT(C++)の学習方法について
-
今ってプログラミング言語は何...
-
スパーコンピューターで使用す...
-
Excelの開発言語ってなんですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
今ってプログラミング言語は何...
-
C言語、C+、C++、C#の違い
-
プログラミング言語について
-
COBOLでのNOT = の AND条件
-
近年誕生したプログラミング言語
-
UNITY Float型の接尾辞fって
-
C言語とhtmlの違いを どな...
-
vbaとc言語の関連性について
-
C++における継続行
-
プログラムに書かれる"%"記号の...
-
COBOLで文字タイプを数字...
-
VBSでDim、Private、Publicの違い
-
TO_CHARで小数点以下がある場合...
-
VBSとWSHは読み方が違うだけで...
-
Excel VBAで文字化けする (英語...
-
VCとVC++
-
HTMLとC++で、どんなホームペー...
-
C++ ってなんて読む?
-
UWSCはどのプログラミング言語?
-
会計システムをつくるために必...
おすすめ情報