Scala ひと巡り (A Tour of Scala)
原ページ
Published on The Scala Programming Language (http://www.scala-lang.org) .
By admin . Created 2008-07-05, 20:31
Published on The Scala Programming Language (http://www.scala-lang.org) .
By admin . Created 2008-07-05, 20:31
●学習者の参考になればと思って訳してみましたが、誤訳の可能性大ですので、正しいことを知りたい方は必ず原文をお読みください。ご意見その他は、このページの下へ投稿してください。
Scala は簡潔でエレガント、そして型安全な方法で共通のプログラミングパターンを表現できるよう設計された現代的なマルチパラダイム・プログラミング言語です。オブジェクト指向と関数型言語の特質をスムーズに統合します。
Scala はオブジェクト指向言語です
すべての値がオブジェクトである [1]という意味で、Scala は純粋なオブジェクト指向言語です。オブジェクトの型と振る舞いをクラス [2]とトレイト [3]によって記述します。クラスはサブクラス化 [4]と、多重継承の欠点のない置換えである、柔軟なミックスインベースの合成 [5]メカニズムにより拡張されます。
Scala は関数型言語です
すべての関数が値である[1]という意味で、Scala は関数型言語でもあります。Scala は無名関数の定義に簡単な構文 [6]を提供します。それは高階関数 [7]をサポートし、関数のネストを可能とし[8]、カリー化 [9]をサポートします。Scala のケースクラス [10]とパターンマッチング [11]の組み込みサポートは、多くの関数型プログラミング言語で使われる代数型をモデル化します。
さらに、Scala のパターンマッチングの概念は、右無視シーケンスパターン(right-ignoring sequence pattern) [13]の助けにより、XML データ [12]の処理へ自然に拡張されます。このコンテキストにおいて、シーケンス内包表記(sequence comprehensions) [14]はクエリの設計に役立ちます。
これらの特徴により Scala は、Web サービス[15]のようなアプリケーション開発に理想的なものとなっています。
Scala は静的な型付け言語です
Scala は、抽象化が安全で首尾一貫した方法でなされることを静的に強制する、表現力豊かな型システムを備えています。
特に、型システムは次をサポートします。
- ジェネリッククラス (generic classes [16])
- 変位指定アノテーション (variance annotations [17])
- 上/下限 型境界 (upper[18] and lower[19] type bounds)
- 内部クラスとオブジェクトメンバーとしての抽象型(inner classes [20] and abstract types [21] as object members)
- 複合型 (compound types [22])
- 明示的に型付けされた自己参照 (explicitly typed self references [23])
- ビュー (view [24])
- 多相的メソッド (polymorphic methods [25])
ローカルな型推論 [26]機構のおかげで、ユーザーはプログラムに冗長な型情報で注釈を付ける必要がありません。これらフィーチャーの組み合わせは、プログラミング抽象の安全な再利用とソフトウェアの型安全な拡張に、強力な基盤を提供します。
Scala は拡張性に富んでいます
現場では、固有領域のアプリケーション開発はしばしば領域固有の言語拡張を必要とします。Scala は、新たな言語要素をライブラリの形でスムーズに容易に加えることのできる、言語メカニズムのユニークな組合せを提供します:
- どのようなメソッドも中置あるいは後置演算子 [27]として使えます。そして
- 要請型(expected type:期待される型)に応じて、クロージャが自動的に構成されます[28](target typing:ターゲットによる型付け)。
両フィーチャーの併用により、構文拡張なしで、またマクロのようなメタプログラミング機能の助けを借りずに、新しい構文を簡単に定義できるようになります。
Scala は Java や .NET と相互運用できます
Scala は、ポピュラーな Java 2 実行環境(JRE [29])とうまく相互運用できるように設計されています。特に、主流のオブジェクト指向 Java プログラミング言語との相互作用は可能な限りスムーズです。Scala は、Java と同列のコンパイルモデル(ダイナミックなクラスローディング、分割コンパイル)を採用しており、既存の多数の高品質ライブラリにアクセスできます。.NET フレームワーク(CLR [30])のサポートも利用できます。
さらに次のページをお読みください。
- Scala ひと巡り : 抽象型 (Abstract Types)
- Scala ひと巡り : アノテーション (Annotations)
- Scala ひと巡り : クラス (Classes)
- Scala ひと巡り : ケースクラス (Case Classes)
- Scala ひと巡り : 事前定義された classOf 関数 (Predefined function classOf)
- Scala ひと巡り : 複合型 (Compound Types)
- Scala ひと巡り : シーケンス内包表記 (Sequence Comprehensions)
- Scala ひと巡り : 抽出子オブジェクト (Extractor Objects)
- Scala ひと巡り : ジェネリッククラス (Generic Classes)
- Scala ひと巡り : 暗黙のパラメータ (Implicit Parameters)
- Scala ひと巡り : 内部クラス (Inner Classes)
- Scala ひと巡り : ミックスインクラス合成 (Mixin Class Composition)
- Scala ひと巡り : 関数のネスト (Nested Functions)
- Scala ひと巡り : 無名関数の構文 (Anonymous Function Syntax)
- Scala ひと巡り : カリー化 (Currying)
- Scala ひと巡り : 型依存クロージャの自動構築 (Automatic Type-Dependent Closure Construction)
- Scala ひと巡り : オペレータ (Operators)
- Scala ひと巡り : 高階関数 (Higher-Order Functions)
- Scala ひと巡り : パッケージ (Packages)
- Scala ひと巡り : パターンマッチング (Pattern matching)
- Scala ひと巡り : 多相的メソッド (Polymorphic Methods)
- Scala ひと巡り : 正規表現パターン (Regular Expression Patterns)
- Scala ひと巡り : sealed クラス (Sealed Classes)
- Scala ひと巡り : トレイト (Traits)
- Scala ひと巡り : 上限 型境界 (Upper Type Bounds)
- Scala ひと巡り : 下限 型境界 (Lower Type Bounds)
- Scala ひと巡り : 明示的に型付けられた自己参照 (Explicitly Typed Self References)
- Scala ひと巡り : サブクラス化 (Subclassing)
- Scala ひと巡り : ローカルな型推論 (Local Type Inference)
- Scala ひと巡り : 統合された型 (Unified Types)
- Scala ひと巡り : 変位指定 (Variances)
- Scala ひと巡り : ビュー (Views)
- Scala ひと巡り : XML 処理 (XML Processing)
このwikiの更新情報RSS