人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

関数型言語のお勧めは?

単なる興味からですが、関数型言語をひとつ習得してみようと思っています。
あなたがお勧めと思う言語とお勧めの理由、参考書 or URLを教えてください。

ポイントは、以下の3つ。
- 趣味でやるので実用性は重要視しない(実用できるに越したことはないが)
- 関数型言語のエッセンスを学べる(定義は回答者にお任せします)
- 日本語文献(出来れば書籍)が充実している

今のところ候補としては Common Lisp/Emacs Lisp, Haskell, Gauche あたりがどうか?と考えています。

●質問者: b-wind
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Common Lisp Emacs Lisp Gauche Haskell あなた
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● pahoo
●20ポイント
お勧めする言語 LOGO
お勧めする理由 松田聖子でお馴染みのパソコン「SONY SMC-777」が標準装備していたから。
参考サイト Logo情報室 無料で利用できるWindows用LOGO処理系があります
参考書籍 マインドストーム」(シーモア・パパート/奥村貴世子/未来社/1995年03月/2,940円)
◎質問者からの返答

初めて知りました。LISP 由来の言語なんですね。

ただ、そうなると Common Lisp と比べて選択するメリットがいまいち感じられないのですが…。

言語自体も情報元も古いもののようですし。


2 ● dev_zer0
●20ポイント

Common Lisp以外にあり得ません。

http://www.aoky.net/articles/leon_bambrick/lisp_truth.htm

特にマクロが使えないLispなどプリプロセッサの無いC言語です。

そういう意味でHaskellもSchemeもお上品すぎますし、

Emacs LispはあまりにもEmacsの為の言語に成り下ってる下僕です。


ポール・グレアムの信者ならArkでもいいと思うし、

実用性を求めるならばPostScriptは抑えておきたいところですが

# 世界で一番大量に作成されるプログラムはPostScriptだと思う

関数型のプログラム言語を一つだけしか選べないとしたらCommon Lispです。


日本語文献としてはやはりポール グレアム著の

「ANSI Common Lisp」基本的な文法習得用

ANSI Common Lisp (スタンダードテキスト)

ANSI Common Lisp (スタンダードテキスト)

  • 作者: ポール グレアム
  • 出版社/メーカー: ピアソンエデュケーション
  • メディア: 単行本

「On Lisp」マクロで悟りの世界を開きたい用

http://user.ecc.u-tokyo.ac.jp/~tt076524/onlispjhtml/

あたりがよいと思う。

◎質問者からの返答

この部分の詳細が知りたいです。

そういう意味でHaskellもSchemeもお上品すぎますし、

上品だと何がデメリットか?あたりを詳しく。


3 ● popattack
●20ポイント

Standard MLはどうでしょうか。アメリカのスタンフォード大学やカーネギーメロン大学などの情報工学が有名な大学はC,C++より一番最初にStandard MLかSchemeを教えるそうです。

http://www.smlnj.org/

ただ残念なことにStandard MLの日本語の書籍はhttp://www.yfcbookshelf.com/programming%20language'sbooks8.htm#プログラミング言語ML くらいしかなさそうです。

Scheme関連であれば結構本が出ているので、最初にやるのであればSchemeがいいかもしれません。あの括弧に苦手意識がなければですが・・・

◎質問者からの返答

Standard ML も初耳ですね。ちょっと調べた限りではやはり情報が少なそうな…。

Scheme は候補には挙がりそうです。


4 ● masshie
●20ポイント

関数型プログラミングの本としては、

関数プログラミング

関数プログラミング

  • 作者: R. バード P. ワドラー
  • 出版社/メーカー: 近代科学社
  • メディア: 単行本

をお勧めします。

扱っている言語は、Mirandaライクなのですが、実際に入手できることを考えると、Haskell で代用するしかないでしょう。Haskell本(日本で出版されたもの)は2冊しかなさそうなので、Amazonの書評でも見て決めてください。

Lispで言っている「関数プログラミング」と、Haskell の関数プログラミングはまったく別のものです。代数学的センスが要求されます。

◎質問者からの返答

Lispで言っている「関数プログラミング」と、Haskell の関数プログラミングはまったく別のものです。

どう違うのか詳しく。

ちなみに代数は得意なので問題なしです。


5 ● hujikojp
●20ポイント

端的には Haskellだとおもいます。副作用のない純粋関数型言語としてつかえるのは。

他の言語 (ML、Lisp、Schemeなど)は、副作用を許しているので、命令的にかけるという逃げがあります。

どの程度、逃げずにかける(=書く習慣がある)かというと、

Haskell >>>(越えられない壁) >>> ML > Scheme > Lisp (Common、Emacsともに)

ぐらいでしょうか。これはプログラミングスタイルとかの問題でもありますが。

Emacs Lispだと、単にカッコつけた命令型になりかねません。

関数型という視点からみると以上ですが、Lispにはマクロなど、それはそれですごい特徴もあるので学ぶ価値はあるでしょう。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ