Scala
「文字列の中に'a'という文字が存在するか判定する」という例を挙げる。
手続き型言語的なコードを書くと以下のようになる。
上のコードは、添え字を使わずに、次のように書くことができる。
上のコードは、トレイトscala.collection.Traversableを使って、次のように書くことができる。
典型的な関数型言語では再帰をよく使う。再帰に置き換えると以下のようになる。
Martin Oderskyによると、Scala開発の動機は2つの仮説による。
汎用言語はスケーラブルでなくてはならない。同じ概念で、小さいプログラムも大きなプログラムも記述できるべきである。
スケーラビリティは関数型言語とオブジェクト指向言語の2つのプログラミングの概念を統合し、一般化することにより実現できる。