A Tour of Scala

  • 投稿日:
  • 更新日:2015/03/06
  • by
  • カテゴリ:

何となく気が向いたので、A Tour of Scalaを翻訳しました。 さらに気が向いたらツアーの内容も訳そうかな...。

ところで先日気にしていたスタックに関してですが、リファレンスを読む限り、tail-recursionはスタックを消費しないようにできているらしいです。


A Tour of Scala

Scalaはモダンでマルチパラダイムなプログラミング言語で、プログラムパターンを簡潔、エレガント、かつ型安全に表現することができます。 オブジェクト指向および関数型言語の機能をスムーズに統合しています。

Scalaはオブジェクト指向

Scalaは全ての値がオブジェクトである、という点において純粋オブジェクト指向言語です。 型とオブジェクトの挙動はclassとtraitで記述されます。 クラスは多重継承の代わりにサブクラスや柔軟なミックスインベースのコンポジションで拡張することができます。

Scalaは関数型

Scalaは全ての関数が値である、という点において関数型言語でもあります。 Scalaは匿名関数を定義するための軽量な構文をもち、高階関数をサポートし、入れ子の関数を書くことができ、カリー化をサポートします。 Scalaのケースクラスとビルトインのパターンマッチングは、多くの関数型言語で使われている代数型をモデル化します。

さらに、Scalaのパターンマッチングの考え方と、right-ignoring sequence patternsを使うことにより、XMLデータを自然に処理することができます。 ここでは、クエリを作るのにsequence comprehensionsが便利です。 これらの機能により、ScalaはWebサービスを作るのに最適な言語となっています。

Scalaは静的型付き

Scalaは安全で一貫性のある抽象化を行うための静的な型システムを持ちます。 特に、型システムは以下をサポートしています。

  • ジェネリッククラス
  • varianceアノテーション
  • 型の上限、下限
  • オブジェクトメンバとしての内部クラスおよび抽象型
  • コンパウンド型
  • 明示型付き自己参照
  • ビュー
  • ポリモーフィックなメソッド

局所型推論機構により、ユーザが冗長な型情報を記述する必要はありません。 これらの機能の組み合わせにより、プログラムの安全な抽象化再利用や型安全な拡張が可能となります。

Scalaは拡張性がある

ドメイン固有のアプリケーションの開発は、しばしばドメイン固有言語(DSL)拡張を必要とします。 Scalaは言語機能のユニークな組み合わせにより、ライブラリによる言語機能の追加を簡単にしています。

  • 任意のメソッドが後置および中置演算子として使用可能
  • 対象型による自動クロージャ生成

これらの利用により、構文拡張やマクロ機能などをしなくても新しい文を定義することができます。

ScalaはJavaおよび.NETと相互利用可能

ScalaはJava 2 Runtime Environmentと相互利用可能です。 特に、Javaとのインタラクションは可能な限りスムーズになっています。 ScalaはJavaと同様なコンパイルモデル(セパレートコンパイル、動的ローディング)を持ち、既存のライブラリにアクセスすることができます。 .NETフレームワーク(CLR)もサポートされています。

  • A Tour of Scala: 抽象型
  • A Tour of Scala: アノテーション
  • A Tour of Scala: クラス
  • A Tour of Scala: ケースクラス
  • A Tour of Scala: classOf定義済関数
  • A Tour of Scala: コンパウンド型
  • A Tour of Scala: Sequence comprehensions
  • A Tour of Scala: Extractorオブジェクト
  • A Tour of Scala: ジェネリッククラス
  • A Tour of Scala: 暗黙パラメータ
  • A Tour of Scala: 内部クラス
  • A Tour of Scala: ミックスインクラスの作成
  • A Tour of Scala: 入れ子関数
  • A Tour of Scala: 匿名関数構文
  • A Tour of Scala: カリー化
  • A Tour of Scala: 自動型依存クロージャ生成
  • A Tour of Scala: 演算子
  • A Tour of Scala: 高階関数
  • A Tour of Scala: パッケージ
  • A Tour of Scala: パターンマッチング
  • A Tour of Scala: ポリモーフィックメソッド
  • A Tour of Scala: 正規表現
  • A Tour of Scala: シールドクラス
  • A Tour of Scala: Traits
  • A Tour of Scala: 型上限制約
  • A Tour of Scala: 型下限制約
  • A Tour of Scala: 明示型付き自己参照
  • A Tour of Scala: サブクラス化
  • A Tour of Scala: 局所型推論
  • A Tour of Scala: 統合型
  • A Tour of Scala: Variances(共変及び反変)
  • A Tour of Scala: ビュー
  • A Tour of Scala: XML処理

こちらもよく読まれています