回答編集履歴
1
文章訂正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
おっしゃるとおりです。List#replaceAllの引数はUnaryOperatorですが、このインターフェースには抽象メソッド一つと3つほどのデフォルトメソッドが定義されてますがラムダ式で表現できるのは抽象メソッドのみです。
|
4
4
|
|
5
|
-
Javaを離れて計算機科学一般においてラムダ式が何を意味するかと言えば「単一の関数を表記するためのもの」と捉えることができると思います。
|
5
|
+
Javaを離れて計算機科学一般においてラムダ式が何を意味するかと言えば「単一の関数を表記するためのもの」と捉えることができると思います。古くはLispなどにありましたし、今日は色々な言語に見られますが、いずれの言語でも「単一の関数の実装」であることは同じだと思います。
|
6
6
|
|
7
7
|
Javaでは「関数」という新たな言語仕様を導入するのではなく「単一の抽象メソッドのみを持つinterface」を「関数のインターフェースの定義」と見做してそれを実装する具象クラス(およびそのインスタンシエーション)を行うことで、いわゆる第一級関数の実体を表現できるようにしたのでしょう。そうすることで言語仕様を大きく変更しなくて済むため都合がよかったのだと思います。
|
8
8
|
|