関数型プログラミングの世界
by Kenta Murata on Jun 12, 2011
- 9,223 views
関数型プログラミングで重要となる高階関数と遅延評価について紹介。時間の関係で、遅延評価については Why Functional Programming Matters とその関連 URL ...
関数型プログラミングで重要となる高階関数と遅延評価について紹介。時間の関係で、遅延評価については Why Functional Programming Matters とその関連 URL の紹介しかしていない。
Statistics
- Likes
- 21
- Downloads
- 54
- Comments
- 4
- Embed Views
- Views on SlideShare
- 9,063
- Total Views
- 9,223

末尾呼び出しの最適化は処理系の実装の問題ですから関数型’言語’の必須機能ではないです。評価機の問題です。
関数型プログラミングで必要となる機能はスライドに書いてあるように、高階関数と遅延評価です。だから、私はこの二つを自然に扱える言語という意味で LISP を関数型言語だと考えていないし、スライドでもそのように分類していません。
あくまでも私の解釈ですから、渡邊さんは御自身のご理解の下で御自由に解釈してください。 1 year ago
素のLISPとは何をさしているのでしょうか?
> ただし、LISP方言の一種である Scheme は末尾呼び出し最適化と遅延評価の機能が仕様化されていますから、最後の方の言語比較表では関数型言語として扱っています。
つまり、末尾呼び出し最適化と遅延評価の機能があるものを関数型言語と呼ぶということでしょうか? 1 year ago
ただし、LISP方言の一種である Scheme は末尾呼び出し最適化と遅延評価の機能が仕様化されていますから、最後の方の言語比較表では関数型言語として扱っています。 1 year ago
マルチパラダイム言語なので、確かに手続き型の特徴を併せ持ちますが、手続き型と関数型のどちらかに振り分けるとしたら関数型言語に分類される言語だと思うのです。
たとえばJonesらはその論文[1]の中で'Some mostly-functional languages, such as Lisp or SML.'と言うようにLISPが関数型言語であることを示唆していたりしますが。
[1] Simon L Peyton Jones, Philip Wadler, Imperative functional programming. 1992. 1 year ago