関数型プログラミングの特徴を伝えることをを目的とした本です。
そのためlispによる実践的なプログラミングについてはほとんど解説されていません。
また、関数型言語を特徴付ける中でももっとも特徴的な部分に絞って解説しており
これで関数型プログラミングの概要がつかめるとは言い切れないところがあります。
次に本書の良いと感じた点をあげます。
・最も敷居の低いcommon lisp本。emacs上での実行を前提としているため実行環境で
つまづくことはほとんどなく、自分の手で試しながらどんどん読み進めることができる。
・C言語との比較が章毎に挿入されているため、関数型の特徴がより印象に残る。
・索引がきちんとしており読み返しが楽。
関数型言語に興味があるけれど敷居が高く感じるという方の最初の1冊にお勧めします。
無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません。
ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。
携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。
入門Common Lisp: 関数型4つの特徴とλ計算 単行本 – 2006/9/1
新納 浩幸
(著)
- 本の長さ191ページ
- 言語日本語
- 出版社(株)マイナビ出版
- 発売日2006/9/1
- ISBN-104839920818
- ISBN-13978-4839920814
この商品をチェックした人はこんな商品もチェックしています
ページ 1 以下のうち 1 最初から観るページ 1 以下のうち 1
商品の説明
出版社からのコメント
(Common Lispで関数型の特徴を学ぶ!)
「関数型プログラミングを学ぼうと思ったとき、何を会得すれば "関数型"を
理解したということになるのか?」「関数型を学ぶ際、どのような知識が得られ
れば、今後のプログラミングに役立つのか?」
本書では、Common Lisp使って関数型の特徴とλ計算を体得できます。
「関数型プログラミングを学ぼうと思ったとき、何を会得すれば "関数型"を
理解したということになるのか?」「関数型を学ぶ際、どのような知識が得られ
れば、今後のプログラミングに役立つのか?」
本書では、Common Lisp使って関数型の特徴とλ計算を体得できます。
特にWindowsユーザ向けに、xyzzyやMeadow+GCLによるプログラミングを一通り解
説した後、式の評価、再帰呼び出し、参照透過性、高階関数、そしてλ(ラム
ダ)計算など、LISPの特徴が出るプログラミングを取り上げていきます。
本書によってCommon
Lispによるプログラミング(あるいは関数型のプログラミ
ング)がどういったものか、手続き型のプログラミングとの違いが体得できま
す。
登録情報
- 出版社 : (株)マイナビ出版 (2006/9/1)
- 発売日 : 2006/9/1
- 言語 : 日本語
- 単行本 : 191ページ
- ISBN-10 : 4839920818
- ISBN-13 : 978-4839920814
- Amazon 売れ筋ランキング: - 667,356位本 (本の売れ筋ランキングを見る)
- - 12,799位電気・通信 (本)
- カスタマーレビュー:
著者について
著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
著者の本をもっと発見したり、よく似た著者を見つけたり、著者のブログを読んだりしましょう
カスタマーレビュー
星5つ中3.9つ
5つのうち3.9つ
全体的な星の数と星別のパーセンテージの内訳を計算するにあたり、単純平均は使用されていません。当システムでは、レビューがどの程度新しいか、レビュー担当者がAmazonで購入したかどうかなど、特定の要素をより重視しています。 詳細はこちら
6グローバルレーティング
虚偽のレビューは一切容認しません
私たちの目標は、すべてのレビューを信頼性の高い、有益なものにすることです。だからこそ、私たちはテクノロジーと人間の調査員の両方を活用して、お客様が偽のレビューを見る前にブロックしています。 詳細はこちら
コミュニティガイドラインに違反するAmazonアカウントはブロックされます。また、レビューを購入した出品者をブロックし、そのようなレビューを投稿した当事者に対して法的措置を取ります。 報告方法について学ぶ
-
トップレビュー
上位レビュー、対象国: 日本
レビューのフィルタリング中に問題が発生しました。後でもう一度試してください。
2010年8月8日に日本でレビュー済み
Amazonで購入
Common Lispの入門書というより、関数型プログラミング言語の特徴をテーマとした本。Common Lisp入門としては最小限の内容。中盤以降の章で、関数型言語の4つの特徴を1つずつ解説していく。最終章は「ラムダ計算」について。
読者としては、(手続き型言語の)プログラミング経験者を想定している模様。関数型言語の特徴は何か、そこから何を学ぶべきか、といったことに興味のある人向け。ただし、大学の先生の視点から書かれていることもあり、現場のプログラマにすぐ役立つという内容ではないと思う。また、本格的な情報系の教育を受けたことのある読者にとってはかなりもの足りない内容だろうとも思う。
著者の挙げる4つの特徴とは、
・式は評価され値を返す
・繰り返しは再帰呼び出しで書く
・代入式は使わない
・高階関数が利用できる
で、目次を見たときには正直拍子抜けしたが、C言語との対比がなされていたのは面白かった。ただ欲を言えば、JavaやC#等の新しい言語との関わりについても触れて欲しかったところ。それと言うのも、こういった新しい言語に関数型言語の要素がどのような形で取り入れられているのかを知ることによって、プログラミングの幅が広がると思うからだ。
「ラムダ計算」を扱った最終章は私にはかなり難しかった。ただ、「機械による計算の原理」と言えば、「チューリングマシン」しか思い浮かばなかった私にとっては、それと比肩するものが他にもある、ということを知っただけでも意味があったように思う。
本書では、Lispプログラムを簡単に試してみるためにxyzzyを用いることを勧めており、その方法が簡単に説明されている(MeadowからGCLやCLISPを使う方法についても説明がある)。Emacs系のエディタには敷居の高さを感じていたので、こういった説明は親切に感じた。
読者としては、(手続き型言語の)プログラミング経験者を想定している模様。関数型言語の特徴は何か、そこから何を学ぶべきか、といったことに興味のある人向け。ただし、大学の先生の視点から書かれていることもあり、現場のプログラマにすぐ役立つという内容ではないと思う。また、本格的な情報系の教育を受けたことのある読者にとってはかなりもの足りない内容だろうとも思う。
著者の挙げる4つの特徴とは、
・式は評価され値を返す
・繰り返しは再帰呼び出しで書く
・代入式は使わない
・高階関数が利用できる
で、目次を見たときには正直拍子抜けしたが、C言語との対比がなされていたのは面白かった。ただ欲を言えば、JavaやC#等の新しい言語との関わりについても触れて欲しかったところ。それと言うのも、こういった新しい言語に関数型言語の要素がどのような形で取り入れられているのかを知ることによって、プログラミングの幅が広がると思うからだ。
「ラムダ計算」を扱った最終章は私にはかなり難しかった。ただ、「機械による計算の原理」と言えば、「チューリングマシン」しか思い浮かばなかった私にとっては、それと比肩するものが他にもある、ということを知っただけでも意味があったように思う。
本書では、Lispプログラムを簡単に試してみるためにxyzzyを用いることを勧めており、その方法が簡単に説明されている(MeadowからGCLやCLISPを使う方法についても説明がある)。Emacs系のエディタには敷居の高さを感じていたので、こういった説明は親切に感じた。
2007年12月22日に日本でレビュー済み
Amazonで購入
Common Lisp入門というより,関数型言語を始める前にという位置づけで
考えるとよいと思う.
この本だけでLispでプログラムが書けるようにはならないが,なぜ関数型で
書かなければいけないんだろう,という疑問を抱きながらカッコ地獄に迷う
ことはなくなる.という大きな役割を果たしてくれるだろう.
門外漢にはとっつきにくいLispであるが,本書では処理系のインストールから
紹介している.
本書で紹介されている関数型言語の4つの特徴とは
1. 式は評価され,値を返すもの
2. 繰り返しは再帰で書く
3. 代入式を使わない
4. 高階関数が利用できる
というもの.
例えばLispではsetqを使って代入ができるので純粋には関数型言語ではない.
など,関数型言語という軸をしっかり持って書かれていると思う.
再帰の章では,再帰の解説としては珍しく,「処理速度,コストの観点からいえば
再帰するべきではない」ときちんとかかれており,更に手続き方での書き方
も対比して書かれているのがよかった.
また,最後に末尾再帰の解説がされているのが個人的に嬉しかった.
各章の最後に「この特徴とCプログラミングとの関係」という説明が入っている
ため,従来の手続き型言語に慣れている人の理解を助けてくれる.
最終章ではλ計算についての解説がある.
プログラムを組む上ではλ計算について知っている必要はないのだが,
具体的な例を交えて説明してくれているので,計算理論の難しそうな本を
開くまでもなく,λ計算を理解できる.
例えばPerlやRubyはLispに大きく影響されている言語であり,
プログラミングを行う上でLispの概念を学ぶことは大きな意義がある.
エッセンスを学ぶという意味で本書は良い入門書だと思う.
考えるとよいと思う.
この本だけでLispでプログラムが書けるようにはならないが,なぜ関数型で
書かなければいけないんだろう,という疑問を抱きながらカッコ地獄に迷う
ことはなくなる.という大きな役割を果たしてくれるだろう.
門外漢にはとっつきにくいLispであるが,本書では処理系のインストールから
紹介している.
本書で紹介されている関数型言語の4つの特徴とは
1. 式は評価され,値を返すもの
2. 繰り返しは再帰で書く
3. 代入式を使わない
4. 高階関数が利用できる
というもの.
例えばLispではsetqを使って代入ができるので純粋には関数型言語ではない.
など,関数型言語という軸をしっかり持って書かれていると思う.
再帰の章では,再帰の解説としては珍しく,「処理速度,コストの観点からいえば
再帰するべきではない」ときちんとかかれており,更に手続き方での書き方
も対比して書かれているのがよかった.
また,最後に末尾再帰の解説がされているのが個人的に嬉しかった.
各章の最後に「この特徴とCプログラミングとの関係」という説明が入っている
ため,従来の手続き型言語に慣れている人の理解を助けてくれる.
最終章ではλ計算についての解説がある.
プログラムを組む上ではλ計算について知っている必要はないのだが,
具体的な例を交えて説明してくれているので,計算理論の難しそうな本を
開くまでもなく,λ計算を理解できる.
例えばPerlやRubyはLispに大きく影響されている言語であり,
プログラミングを行う上でLispの概念を学ぶことは大きな意義がある.
エッセンスを学ぶという意味で本書は良い入門書だと思う.
2012年1月1日に日本でレビュー済み
関数型プログラミング言語にほとんど触れたことない状態で読み始めました。最終章はかなり難しかったのですが、楽しんで通読することができました。
長所:
1.Lispの最低限の特徴を、手っ取り早くおさえることができる
関数型言語の特徴について、ひとつひとつは深く掘り下げられていないものの概要が簡潔にまとめられています。とくに高階関数、参照透過性、λ計算といった概念を、プログラムの実例を通して理解したい場合、本書は最速のガイドになると思います。
2.処理系やエディタのインストール方法が、比較的充実している。
Common Lispの書籍は、コンピュータに精通しているひとが読むことが想定されているのか、イントールについての情報がないことがあります。
この本では、GCL、CLISP、xyzzy、Meadows(Emacs)といった処理系やエディタをインストール手順が解説されていて、とりあえずこれに従えば、Common Lispを動かすところまではいけます。あとは、ネット上にある情報を参考に、プログラミング環境を改良していけばよいでしょう。
3.コンピュータサイエンスを意識した内容。
著者が大学の教員ということもあってか、内容が比較的アカデミックな(理論的な)印象があります。ハノイの塔や二分法、クイックソート、フィボナッチ数列と、とりわけ関数型言語では基本的な問題が紹介されています。逆に言うと、Common Lispで実用的なプログラムを書きたいという方は、興味を惹かれないかもしれません。
短所:
1.内容が網羅的でもなく、また豊富ではない。
Lispについての素養がある程度以上ある方は、内容が薄いと感じるかもしれません。
2.最終章「λ計算」が突出してむずかしい。
最後の20ページほどが、ラムダ計算(定義、β変換、Church-Rosserの定理、Yコンビネータ等)の解説とプログラム例に当てられているのですが、駆け足な解説になっています。まったくλ計算に触れたことがないひとが、この解説だけで理解するのは、なかなか難しいのではないかと思います。
※なお、「本書ではLispを動かす環境としてxyzzyを想定していますが、Meadow+GCLによる利用方法についても解説しています。」(p.4)と冒頭にあります。しかし、xyzzyでなくて、Emacs+GCLを用いても問題なく演習ができます。
長所:
1.Lispの最低限の特徴を、手っ取り早くおさえることができる
関数型言語の特徴について、ひとつひとつは深く掘り下げられていないものの概要が簡潔にまとめられています。とくに高階関数、参照透過性、λ計算といった概念を、プログラムの実例を通して理解したい場合、本書は最速のガイドになると思います。
2.処理系やエディタのインストール方法が、比較的充実している。
Common Lispの書籍は、コンピュータに精通しているひとが読むことが想定されているのか、イントールについての情報がないことがあります。
この本では、GCL、CLISP、xyzzy、Meadows(Emacs)といった処理系やエディタをインストール手順が解説されていて、とりあえずこれに従えば、Common Lispを動かすところまではいけます。あとは、ネット上にある情報を参考に、プログラミング環境を改良していけばよいでしょう。
3.コンピュータサイエンスを意識した内容。
著者が大学の教員ということもあってか、内容が比較的アカデミックな(理論的な)印象があります。ハノイの塔や二分法、クイックソート、フィボナッチ数列と、とりわけ関数型言語では基本的な問題が紹介されています。逆に言うと、Common Lispで実用的なプログラムを書きたいという方は、興味を惹かれないかもしれません。
短所:
1.内容が網羅的でもなく、また豊富ではない。
Lispについての素養がある程度以上ある方は、内容が薄いと感じるかもしれません。
2.最終章「λ計算」が突出してむずかしい。
最後の20ページほどが、ラムダ計算(定義、β変換、Church-Rosserの定理、Yコンビネータ等)の解説とプログラム例に当てられているのですが、駆け足な解説になっています。まったくλ計算に触れたことがないひとが、この解説だけで理解するのは、なかなか難しいのではないかと思います。
※なお、「本書ではLispを動かす環境としてxyzzyを想定していますが、Meadow+GCLによる利用方法についても解説しています。」(p.4)と冒頭にあります。しかし、xyzzyでなくて、Emacs+GCLを用いても問題なく演習ができます。
2010年4月11日に日本でレビュー済み
Amazonで購入
国産emacsライクエディタであるxyzzyを開発環境として解説しています。
xyzzyは(たしか)windows上でしか動きませんが、unix系のOSでもemacsを利用すれば似たような環境を用意出来ます。
Common Lispの入門部分はとても丁寧に書いてありますが、内容は薄いです。
基本文法から始まって高階関数をちょこっと説明して終わりです。
Lispを真面目に勉強したいという人は、この本では不十分だし初学者から見ても物足りないでしょう。
λ計算の基本(λ式、curry化、etc...)と、Lispでのλ計算も(ちょこっと)解説しています。内容は薄いです。
結局、全体的に内容が薄いという印象が目立ちました。
Computer Scienceを専攻する大学生が読むには、値段に対して内容が薄すぎます。
趣味でプログラミングをやっていて偶に話にあがるLispがどういうものかを知りたいだとか、高校生でCSを大学で学んでみたいと思っているとか、そういう人たちにはちょうど良い本だと思います。
xyzzyは(たしか)windows上でしか動きませんが、unix系のOSでもemacsを利用すれば似たような環境を用意出来ます。
Common Lispの入門部分はとても丁寧に書いてありますが、内容は薄いです。
基本文法から始まって高階関数をちょこっと説明して終わりです。
Lispを真面目に勉強したいという人は、この本では不十分だし初学者から見ても物足りないでしょう。
λ計算の基本(λ式、curry化、etc...)と、Lispでのλ計算も(ちょこっと)解説しています。内容は薄いです。
結局、全体的に内容が薄いという印象が目立ちました。
Computer Scienceを専攻する大学生が読むには、値段に対して内容が薄すぎます。
趣味でプログラミングをやっていて偶に話にあがるLispがどういうものかを知りたいだとか、高校生でCSを大学で学んでみたいと思っているとか、そういう人たちにはちょうど良い本だと思います。