From a213bf1a30b3ebdf24ad9927d7122b694ab4f759 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Fri, 12 Feb 2021 23:17:38 +0900 Subject: [PATCH 01/28] update index layout --- _ja/index.md | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/_ja/index.md b/_ja/index.md index a19f4f8285..698eabb21c 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -1,13 +1,49 @@ --- -layout: inner-page-documentation +layout: documentation title: ドキュメント language: ja partof: documentation discourse: true +more-resources-label: その他のリソース + # Content masthead links -more-resources-label: その他のリソース -sections: + +scala3-sections: + - title: "First steps" + links: + - title: "Scala 3 の新機能" + description: "Scala 3 で追加されたさまざまな新機能の概要" + icon: "fa fa-star" + link: /ja/scala3/new-in-scala3.html + - title: "Scala 3 をはじめる" + description: "あなたのコンピューターにScala 3 をインストールしてScalaコードを書きはじめよう!" + icon: "fa fa-rocket" + link: /ja/scala3/getting-started.html + - title: "Scala 3 Book" + description: "主要な言語仕様のイントロダクションをオンラインブックで読む" + icon: "fa fa-book" + link: ja/scala3/book/introduction.html + - title: "More detailed information" + links: + - title: "Migration Guide" + description: "Scala 2 からScala 3 へ移行するためのガイド" + icon: "fa fa-suitcase" + link: https://scalacenter.github.io/scala-3-migration-guide/ + - title: "Guides" + description: "Scala3の言語仕様からピックアップして解説" + icon: "fa fa-map" + link: /ja/scala3/guides.html + - title: "API" + description: "Scala 3 の全バージョンのAPIドキュメント" + icon: "fa fa-file-text" + link: https://dotty.epfl.ch/api/index.html + - title: "Language Reference" + description: "Scala 3 の言語使用" + icon: "fa fa-book" + link: https://dotty.epfl.ch/docs/reference/overview.html + +scala2-sections: - title: "最初のステップ" links: From 35c86420ce751f264cb68d6692ec5e53f10334c4 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Fri, 12 Feb 2021 23:18:06 +0900 Subject: [PATCH 02/28] add docs translated in ja --- _ja/scala3/contribute-to-docs.md | 8 ++ _ja/scala3/getting-started.md | 191 +++++++++++++++++++++++++++++++ _ja/scala3/guides.md | 8 ++ _ja/scala3/index.md | 44 +++++++ _ja/scala3/new-in-scala3.md | 129 +++++++++++++++++++++ 5 files changed, 380 insertions(+) create mode 100644 _ja/scala3/contribute-to-docs.md create mode 100644 _ja/scala3/getting-started.md create mode 100644 _ja/scala3/guides.md create mode 100644 _ja/scala3/index.md create mode 100644 _ja/scala3/new-in-scala3.md diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md new file mode 100644 index 0000000000..2bf0f06b37 --- /dev/null +++ b/_ja/scala3/contribute-to-docs.md @@ -0,0 +1,8 @@ +--- +layout: inner-page-documentation +overview-name: "Scala 3 Documentation" +title: Contributing to the Docs +language: ja +scala3: true +discourse: true +--- \ No newline at end of file diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md new file mode 100644 index 0000000000..37e0552e4c --- /dev/null +++ b/_ja/scala3/getting-started.md @@ -0,0 +1,191 @@ +--- +layout: singlepage-overview +title: Getting Started with Scala 3 +scala3: true +language: ja +--- + + + +## Try Scala without installing anything + +いますぐ Scala 3 を試してみたいなら ブラウザ上で動作する“Scastie” を使ってみてください。 +_Scastie_ はScalaのコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 + + +## Scala をインストールする + +Scala をインストールするということはつまりさまざまなコマンドラインツールやビルドツールをインストールするということです。 +Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursierを使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。 + +### Scala インストーラ を使う (推奨) + +Scala インストーラは [Coursier](https://get-coursier.io/docs/cli-overview)という名前のツールで、メインコマンドは`cs`です。 +Coursier はシステムにJVMとScala のツールがインストールされているかどうか確認します。 + +次の手順に従って Coursier をインストールしてください。 + +
+
+

cs launcherをインストールする手順に従ってインストールし、次のコマンドを実行してください。:

+

$ ./cs setup

+
+
+ +JVMs の管理に加えて、 `cs setup` コマンドは次のような便利なコマンドラインツールもインストールします。: + +- JDK +- ビルドツール [sbt](https://www.scala-sbt.org) と [mill](https://www.lihaoyi.com/mill) +- [Ammonite](https://ammonite.io), 高機能 REPL +- [scalafmt](https://scalameta.org/scalafmt), the Scala formatter +- [Coursier CLI](https://get-coursier.io/docs/cli-overview), Scala で書かれたアプリケーションをインストールできます +- (Scala 2.13 向けの `scala` コマンドと `scalac` コマンド) + +詳しくは、 [coursier-cli documentation](https://get-coursier.io/docs/cli-overview)を読んでください。 + + +### ... または、手動でインストールする + +Scala プロジェクトをコンパイル、実行、テストやパッケージングするには次の二つのツールだけで十分です。Java 8 または 11、そしてsbtです。 +これらのツールを手動でインストールするには、以下の手順に従ってください。 + +1. Java を [Oracle Java 8](https://www.oracle.com/java/technologies/javase-jdk8-downloads.html), [Oracle Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html), か [AdoptOpenJDK 8/11](https://adoptopenjdk.net/)からダウンロードしてください。 Scala/Java の互換性の詳細については [JDK Compatibility](/overviews/jdk-compatibility/overview.html) を参照してください。 +2. [sbt](https://www.scala-sbt.org/download.html) をインストールしてください。 + + + +## sbtで “Hello, world” プロジェクトを作成する + +コマンドライン、IDEのどちらからでもプロジェクトを作成できます。 + +もし慣れているならコマンドラインツールを使うアプローチを推奨します。 + + +### コマンドラインツールを使う + +sbt は Scala のビルドツールです。 +sbt を使って Scala のコードをコンパイル、実行やテストできます。 + +(ライブラリを公開したり他の様々なタスクを実行することもできます。) + +sbt で新しくプロジェクトを作成するには次の手順に従ってください。: + +1. `cd` コマンドでからのディレクトリに移動してください。 +1. `sbt new scala/hello-world.g8` コマンドを実行してください。 +このコマンドを実行すると ['hello-world' template][template-url] を GitHub から pull します。 +また、無視できる _target_ フォルダを作成します。 +1. アプリケーションを `hello-world` と名付けてください。 + "hello-world"と言う名前のプロジェクトが作成されます。 +1. 次のようなファイル、ディレクトリが作成されるはずです: + +``` +hello-world/ + project/ (sbt が管理するファイルがここに入ります。) + build.properties + src/main/scala/ (Scala のソースコードはここに書きます。) + Main.scala (プログラムのエントリーポイントです。) + build.sbt (sbt の ビルド定義ファイルです。) +``` +今のところ `src/main/scala` にある`Main.scala` しか必要ありません。 + +sbt の詳しいドキュメントは [Scala Book](/scala3/book/scala-tools.html) と sbt 公式 [documentation](https://www.scala-sbt.org/1.x/docs/index.html) にあります。 + + +{% comment %} +### With IntelliJ IDEA + +You can skip the rest of this page and go directly to [Building a Scala Project with IntelliJ and sbt](/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html) +{% endcomment %} + + +## “Hello, world” プロジェクトを開く + +IDE を使ってプロジェクトを開きます。 +最も人気なエディタは IntelliJ IDEA と VS Code です。 +どちらも 高度な IDE 機能を提供しています。しかし、 [その他のエディタ](https://scalameta.org/metals/docs/editors/overview.html)を使うこともできます。 + +### Using IntelliJ IDEA + +1. [IntelliJ Community Edition](https://www.jetbrains.com/idea/download/) をダウンロード、インストールしてください。 +1. リンク先の手順に従って Scala プラグインをインストールしてください。 [the instructions on how to install IntelliJ plugins](https://www.jetbrains.com/help/idea/managing-plugins.html) +1. _build.sbt_ ファイルを開いて、 _Open as a project_ を選択してください。 + +### Using VS Code with Metals + +1. [VS Code](https://code.visualstudio.com/Download) をダウンロードしてください。 +1. [Marketplace](https://marketplace.visualstudio.com/items?itemName=scalameta.metals) から 拡張機能 Metals をインストールしてください。 +1. 次に、_build.sbt_ ファイルが置いてあるディレクトリを開いてください。ダイアログが表示されたら _Import build_ をおしてください。 + +>[Metals](https://scalameta.org/metals) は Scala の lauguage server です。Metals は Lauguage Server Protocol を使ってVS Code やその他のエディタ、たとえば[Atom, Sublime Text, and more](https://scalameta.org/metals/docs/editors/overview.html)、で Scala を書くための機能を提供します。 +(Metals の仕組みについて詳しく知りたい方は、以下のリンクをご覧ください。 [“Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals”](https://www.scala-lang.org/2019/04/16/metals.html).) + + + +### View the source code + +以下の2つのファイルをIDEで見てください。: + +- _build.sbt_ +- _src/main/scala/Main.scala_ + +次のステップでプロジェクトを起動したとき、_build.sbt_ に書かれた設定が _src/main/scala/Main.scala_ を実行するために使われます。 + + +## “Hello, world” プロジェクトを実行する + +If you’re comfortable using your IDE, you can run the code in _Main.scala_ from your IDE. +IDEを快適に使用できるなら、 _Main.scala_ に書かれたコードをIDEから実行してください。 + +そうでないなら、次のような手順でターミナルからアプリケーションを実行することもできます。 + +1. `cd` コマンドで _hello-world_ に移動してください。 +1. `sbt` コマンドを実行してください。sbt console が開きます。 +1. `~run` と入力してください。 + `~` は オプショナルな接頭辞で、これを付けるとファイルを保存するたびに sbt がそのコマンドを実行するので 編集/実行/デバッグのサイクルを高速に回せます。sbt は自身が使うために `target` ディレクトリを生成します。 開発者はこのディレクトリを無視してかまいません。 + +このプロジェクトを試し終わったら、エンターキーを押して `run` コマンドの実行を停止してください。 + +`exit`と入力するか `[Ctrl][d]` ショートカットをおすと sbt から出てコマンドプロンプトに戻ります。 + + + +## 次のステップ + +Scala 3 を使った 最初の “Hello, world” プロジェクトを作れたので, 次のステップに進んでみましょう。 + +以下の記事をチェックしてみてください: + +- [The Scala 3 Book](/scala3/book/introduction.html), Scala の主要な機能の導入となる一連の短いレッスンが用意されています。 +- [The migration guide](https://scalacenter.github.io/scala-3-migration-guide/) 既にある Scala 2 で書かれたコードベースを Scala 3 に移行する際に役立つ情報がまとめてあります。 + +他の Scala ユーザーと交流したいなら、いくつかのメーリングリストやリアルタイムチャットルームがあります。 +これらのリソースのリストや助けを求める場所を探すには、[Scala community page](https://scala-lang.org/community/) をチェックしてみてください。 + + + + + + + + + + +[template-url]: https://github.com/scala/hello-world.g8 diff --git a/_ja/scala3/guides.md b/_ja/scala3/guides.md new file mode 100644 index 0000000000..6ce44865b0 --- /dev/null +++ b/_ja/scala3/guides.md @@ -0,0 +1,8 @@ +--- +layout: inner-page-documentation +title: Guides on Scala 3 +language: ja +namespace: root +scala3: true +discourse: true +--- \ No newline at end of file diff --git a/_ja/scala3/index.md b/_ja/scala3/index.md new file mode 100644 index 0000000000..822b43220e --- /dev/null +++ b/_ja/scala3/index.md @@ -0,0 +1,44 @@ +--- +layout: inner-page-documentation +title: Documentation for Scala 3 +language: ja +namespace: root +scala3: true +discourse: true +# Content masthead links +more-resources-label: More Resources +sections: + + - title: "First steps" + links: + - title: "Scala 3 の新機能" + description: "Scala 3 で追加されたさまざまな新機能の概要" + icon: "fa fa-star" + link: /ja/scala3/new-in-scala3.html + - title: "入門" + description: "あなたのコンピューターにScala 3 をインストールしてScalaコードを書きはじめよう!" + icon: "fa fa-rocket" + link: /ja/scala3/getting-started.html + - title: "Scala 3 Book" + description: "主要な言語仕様のイントロダクションをオンラインブックで読む" + icon: "fa fa-book" + link: ja/scala3/book/introduction.html + - title: "More detailed information" + links: + - title: "Migration Guide" + description: "Scala 2 からScala 3 へ移行するためのガイド" + icon: "fa fa-suitcase" + link: https://scalacenter.github.io/scala-3-migration-guide/ + - title: "Guides" + description: "Scala3の言語仕様からピックアップして解説" + icon: "fa fa-map" + link: /ja/scala3/guides.html + - title: "API" + description: "Scala 3 の全バージョンのAPIドキュメント" + icon: "fa fa-file-text" + link: https://dotty.epfl.ch/api/index.html + - title: "Language Reference" + description: "Scala 3 の言語使用" + icon: "fa fa-book" + link: https://dotty.epfl.ch/docs/reference/overview.html +--- \ No newline at end of file diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md new file mode 100644 index 0000000000..02e40cb209 --- /dev/null +++ b/_ja/scala3/new-in-scala3.md @@ -0,0 +1,129 @@ +--- +layout: singlepage-overview +language: ja +title: New in Scala 3 +scala3: true +discourse: true +--- + +Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 +ここではScala 3 の特に重要な変更点を概観します。 + +より詳しく知りたい方は以下の参考リンクをご覧ください。 + +- [Scala 3 Book]({% link _overviews/scala3-book/introduction.md %}) はScalaを書いたことがない開発者向けに書かれています。 +- [Syntax Summary][syntax-summary] ではScala 3 で新しく追加されたシンタックスを解説しています。 +- [Language Reference][reference] を見ればScala 2とScala 3の変更点を詳しく確認できます。 +- Scala 2 からScala 3 への移行を考えている方は[Migration Guide][migration] をご覧ください。 + +## What's new in Scala 3 +Scala 3 は Scala 2 を徹底的に見直して再設計されています。 At its core, many aspects +of the type-system have been change to be more principled. この変更によって新機能(ユニオン型)が使えるようになったこともそうですが、なにより型システムがさらに使いやすくなりました。 例えば、[型推論][type-inference] や overload resolution が改善されました. + +### 新機能 & 特長: 文法 +(重要度の低い)多くの文法の整理に加えて、Scala 3 の文法は次のように改善されました。 + +- 制御構造( `if`, `while`, や `for`)を書く際に括弧を省略してより簡潔に書けるようになりました。 ([new control syntax][syntax-control]) +- `new` キーワードがオプショナルになりました。 (_aka_ [creator applications][creator]) +- [Optional braces][syntax-indentation]: クロージャを中括弧`{}`ではなくインデントで表現できるようになりました。 +- [ワイルドカード型][syntax-wildcard] が `_` から `?` に変更されました。 +- Implicitsとその文法が [大幅に修正][implicits]されました. + +### Opinionated: Contextual Abstractions +それぞれを組み合わせることで高い(そして時には見たこともないような)表現力を発揮する一連の強力な機能をユーザーにあたえることがScalaの当初のコアコンセプトとしてありました。(これは今でもある程度は当てはまります) 例えば _implicit_ の機能は、コンテキストの受け渡し、型レベル演算、型クラス、暗黙の変換、既存クラスの拡張メソッドなどに使われています。 + +これらのユースケースを参考にして、Scala 3 では少し違ったアプローチをとっています。Scala 3 では、`implicit`がどのようなメカニズムによるものか、ということよりもどのような意図で使われるのかに焦点を当てています。 + +Scala3 ではひとつの強力な機能として`implicit`を提供するのではなく、開発者がその意図を表現しやすいように複数の異なる言語機能として提供しています。 + +- **Abtracting over contextual information**. [Using clauses][contextual-using]を使って呼び出し時に利用可能で、暗黙に引き渡されるべき情報を抽象化することができます。Scala 2 からの改善としては、`using` 節が型だけで指定できるようになったことが挙げられます。 これによって明示的に参照されることのない関数の引数に命名する必要がなくなりました。 +- **Providing Type-class instances**. [Given instances][contextual-givens] を使ってある型に対応する _canonical value_ を定義することができます。実装を公開することなく、型クラスを使ったプログラミングをよりわかりやすく書けます。。 + +- **Retroactively extending classes**. In Scala 2 では拡張メソッドは暗黙の変換か implicit classを使って書くことができました. 一方 Scala 3 では [extension methods][contextual-extension] が直接的に言語使用に含まれているのでよりわかりやすいエラーメッセージを表示できます。型推論も改善されました。 +- **Viewing one type as another**. 暗黙の変換は型クラス`Conversion`のインスタンスとしてゼロから [再設計][contextual-conversions]されました。 +- **Higher-order contextual abstractions**. 全く新しい 機能である [context functions][contextual-functions] は暗黙の引数をとる関数型を第一級オブジェクトとして扱います。この機能はライブラリ作者にとって重要です。また、簡潔なドメイン特化言語(DSL)を記述するのにも役立ちます。 + +- **Actionable feedback from the compiler**. コンパイラが暗黙の引数の解決に失敗した場合、解決に役立つ [import suggestions](https://www.scala-lang.org/blog/2020/05/05/scala-3-import-suggestions.html) を提示します。 + +### Say What You Mean: 型システムの改善 +型推論の大幅な改善に加えて、 Scala 3 の型システムは他にも様々な新機能があります。これらの機能は型で不変な値を静的に表現するパワフルな手段を提供します。 + +- **Enumerations**. [Enums][enums] は case class と上手く組み合わせられるよう、また代数的データ型[algebraic data types][enums-adts]の新しい標準をつくるために再設計されました + +- **Opaque Types**. [opaque type aliases][types-opaque]を使うとパフォーマンス低下の懸念なしに実装の詳細を隠ぺいできます。 Opaque types は値クラスにとってかわる概念です。Opaque types を使うとBoxingのオーバーヘッドを起こすことなく抽象化のバリアを設定できます。 + +- **Intersection and union types**. 型システムを新しい基盤に置いたことで、新しい型システムの機能が使えるようになりました: 交差型 [intersection types][types-intersection](`A & B` と表記する)のインスタンスは `A` でありかつ `B`であるような型のインスタンスです。 合併型[union types][types-union](`A | B` と表記する) のインスタンスは `A`または`B`のどちらか一方の型のインスタンスです。 これらの2つの構成体は開発者が継承ヒエラルキー以外の方法で柔軟に型制約を表現できるようにします。 + +- **Dependent function types**. Scala 2 ではすでに引数の型に応じて返り値の型を変化させることができました。Scala 3 ではこのパターンをさらに抽象化することができ、[dependent function types][types-dependent]を表現することができます。 つまり `type F = (e: Entry) => e.Key` というふうに、返り値の型が引数によって変化するように書けます。 + +- **Polymorphic function types**.dependent function types のように Scala 2 では型パラメタを受け取るメソッドを定義することができました。 しかし、開発者はこれらのメソッドをさらに抽象化することはできませんでした。Scala 3 では、`[A] => List[A] => List[A]` といった書き方をする[polymorphic function types][types-polymorphic] を使って引数に加えて型引数をとるような関数を抽象化できます。 + +- **Type lambdas**. Scala 2 で[compiler plugin](https://github.com/typelevel/kind-projector)を使わないと表現できなかった型ラムダは Scala 3 では第一級の機能としてサポートされています。: 型ラムダは補助的な型を定義しないでも高階型引数として引数を受け渡せる型レベルの関数です。 +- **Match types**. 暗黙の型解決を使って型レベル演算をエンコードする代わりに、Scala 3 では型のパターンマッチング[matching on types][types-match]をサポートしています。 型レベルの演算を型チェックと統合することでエラーメッセージをわかりやすく改善し、また複雑なエンコーディングをしなくていいようにしています。 + + +### 再構想: オブジェクト指向プログラミング +Scala has always been at the frontier between functional programming and object-oriented programming -- +and Scala 3 pushes boundaries in both directions! 先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 +同時に、次に掲げる新機能を使うと _オブジェクト指向設計_ をうまく構造化してベストプラクティスを実践しやすくなります。 +- **Pass it on**. Traits は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによってtraitはソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 +- **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するためScala 3 では [open classes][oo-open]の概念を導入することによって _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 +- **Hide implementation details**. ふるまいを実装したUtility traits は推論される型に含まれるべきでない場合があります。Scala 3 ではそのようなtraitsに [transparent][oo-transparent] とマークすることで継承をユーザーに公開しないようにすることができます。 +- **Composition over inheritance**. このフレーズはしばしば引用されますが、実装するのは面倒です。 しかしScala 3 の [export clauses][oo-export]を使えば楽になります。imports と対称的に、 export clauses はオブジェクトの特定のメンバーへアクセスするためのエイリアスを定義します。 +- **No more NPEs**. Scala 3 はかつてないほどnull安全です。: [explicit null][oo-explicit-null] によって `null` を型ヒエラルキーの外側に追い出しました。これによってエラーを静的にキャッチしやすくなります。また、 [safe initialization][oo-safe-init]の追加的なチェックで初期化されていないオブジェクトへのアクセスを検知できます。 + +### Batteries Included: メタプログラミング +Scala 2 のマクロはあくまで実験的な機能という位置づけでしたが、Scala 3 ではメタプログラミングに役立つ強力なツールが標準ライブラリに入っています。 + + [macro tutorial]({% link _overviews/scala3-macros/index.md %}) のページに異なった機能についての詳しい情報があります。特に Scala 3 は次のようなメタプログラミングのための機能を提供しています。 + +- **Inline**. [inline][meta-inline] を使うことで値やメソッドをコンパイル時に評価できます。 このシンプルな機能はさまざまなユースケースに対応しています。また同時に`inline`はより高度な機能のエントリーポイントとしても使えます。 +- **Compile-time operations**. [`scala.compiletime`][meta-compiletime] パッケージには inline method を実装するのに役立つ追加的な機能が含まれています。 +- **Quoted code blocks**. Scala 3 には [quasi-quotation][meta-quotes]という新機能があります。この機能を使えば扱いやすい高レベルなインターフェースを介してコードを組み立てたり分析したりすることができます。 `'{ 1 + 1 }` と書くだけで1 と 1 を足すASTを組み立てられます。 +- **Reflection API**. もっと高度なユースケースでは [TASTy reflect][meta-reflection]を使ってより細かくプログラムツリーを操作したり生成したりすることができます。 + + +Scala 3 のメタプログラミングについてもっと知りたいかたは、 こちらの[tutorial][meta-tutorial]をご覧ください。 + + +[enums]: {{ site.scala3ref }}/enums/enums.html +[enums-adts]: {{ site.scala3ref }}/enums/adts.html + +[types-intersection]: {{ site.scala3ref }}/new-types/intersection-types.html +[types-union]: {{ site.scala3ref }}/new-types/union-types.html +[types-dependent]: {{ site.scala3ref }}/new-types/dependent-function-types.html +[types-lambdas]: {{ site.scala3ref }}/new-types/type-lambdas.html +[types-polymorphic]: {{ site.scala3ref }}/new-types/polymorphic-function-types.html +[types-match]: {{ site.scala3ref }}/new-types/match-types.html +[types-opaque]: {{ site.scala3ref }}/other-new-features/opaques.html + +[type-inference]: {{ site.scala3ref }}/changed-features/type-inference.html +[overload-resolution]: {{ site.scala3ref }}/changed-features/overload-resolution.html +[reference]: {{ site.scala3ref }}/overview.html +[creator]: {{ site.scala3ref }}/other-new-features/creator-applications.html +[migration]: https://scalacenter.github.io/scala-3-migration-guide + +[implicits]: {{ site.scala3ref }}/contextual/motivation.html +[contextual-using]: {{ site.scala3ref }}/contextual/using-clauses.html +[contextual-givens]: {{ site.scala3ref }}/contextual/givens.html +[contextual-extension]: {{ site.scala3ref }}/contextual/extension-methods.html +[contextual-conversions]: {{ site.scala3ref }}/contextual/conversions.html +[contextual-functions]: {{ site.scala3ref }}/contextual/context-functions.html + +[syntax-summary]: {{ site.scala3ref }}/syntax.html +[syntax-control]: {{ site.scala3ref }}/other-new-features/control-syntax.html +[syntax-indentation]: {{ site.scala3ref }}/other-new-features/indentation.html +[syntax-wildcard]: {{ site.scala3ref }}/changed-features/wildcards.html + +[meta-tutorial]: {% link _overviews/scala3-macros/index.md %} +[meta-inline]: {% link _overviews/scala3-macros/tutorial/inline.md %} +[meta-compiletime]: {% link _overviews/scala3-macros/tutorial/compiletime.md %} +[meta-quotes]: {% link _overviews/scala3-macros/tutorial/quotes.md %} +[meta-reflection]: {% link _overviews/scala3-macros/tutorial/reflection.md %} + +[oo-explicit-null]: {{ site.scala3ref }}/other-new-features/explicit-nulls.html +[oo-safe-init]: {{ site.scala3ref }}/other-new-features/safe-initialization.html +[oo-trait-parameters]: {{ site.scala3ref }}/other-new-features/trait-parameters.html +[oo-open]: {{ site.scala3ref }}/other-new-features/open-classes.html +[oo-transparent]: {{ site.scala3ref }}/other-new-features/transparent-traits.html +[oo-export]: {{ site.scala3ref }}/other-new-features/export.html From 31ee056c1be7104e8a0b42a60a2d41f5748401df Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Fri, 12 Feb 2021 23:54:46 +0900 Subject: [PATCH 03/28] add guides.md --- _ja/scala3/guides.md | 73 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/_ja/scala3/guides.md b/_ja/scala3/guides.md index 6ce44865b0..df6a0cf240 100644 --- a/_ja/scala3/guides.md +++ b/_ja/scala3/guides.md @@ -1,8 +1,71 @@ --- -layout: inner-page-documentation -title: Guides on Scala 3 +layout: inner-page-parent +title: Scala 3 のガイド language: ja -namespace: root scala3: true -discourse: true ---- \ No newline at end of file + + +guides: + - title: "Scala 2 から Scala 3 への移行" + icon: suitcase + url: "https://scalacenter.github.io/scala-3-migration-guide" + description: "Scala 3 との互換性と移行について知っておくべきことすべて" + - title: マクロ + by: Nicolas Stucki + icon: magic + url: "/scala3/guides/macros" + description: "Scala 3 のマクロの書き方に関係する全ての機能をカバーする詳しいチュートリアル" + label-text: feature + - title: TASTyの概要 + by: Alvin Alexander + icon: birthday-cake + url: "/scala3/guides/tasty-overview.html" + description: "Scala のエンドユーザー向けの TASTy のフォーマットの概要" +--- + +
+
+
+
+

概要とガイド

+

+ Scala 3 とその機能についての詳しいガイド +

+
+ {% for overview in page.guides %} +
+
+
+ {% if overview.icon %} +
+
+
+ {% endif %} +

{{ overview.title }}

+
+
+ {% if overview.label-text %}
{{ overview.label-text }}
{% endif %} + {% if overview.by %}
By {{ overview.by }}
{% endif %} + {% if overview.description %}

{{ overview.description }}

{% endif %} + {% if overview.subdocs %} + Contents + + {% endif %} +
+
+ +
+ {% endfor %} +
+
+
+
+
+ + From 3410c910c492e3165907d3c0db85346c7d3de82c Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Fri, 12 Feb 2021 23:57:54 +0900 Subject: [PATCH 04/28] fix link --- _ja/scala3/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/index.md b/_ja/scala3/index.md index 822b43220e..d1561e0255 100644 --- a/_ja/scala3/index.md +++ b/_ja/scala3/index.md @@ -22,7 +22,7 @@ sections: - title: "Scala 3 Book" description: "主要な言語仕様のイントロダクションをオンラインブックで読む" icon: "fa fa-book" - link: ja/scala3/book/introduction.html + link: scala3/book/introduction.html - title: "More detailed information" links: - title: "Migration Guide" From 7b5372fd47a7ff2b17effd440cd2330e7e78d7fc Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Sat, 13 Feb 2021 00:14:45 +0900 Subject: [PATCH 05/28] add contribution guide --- _ja/scala3/contribute-to-docs.md | 63 +++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 2bf0f06b37..5f88f0b059 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -4,5 +4,64 @@ overview-name: "Scala 3 Documentation" title: Contributing to the Docs language: ja scala3: true -discourse: true ---- \ No newline at end of file +--- + +## 概要 +Scala 3 の高品質なドキュメンテーションを作るためのいくつかの試みが目下進行中です。 +特に次のようなドキュメントがあります。 + +- Scala 3 book +- Macros tutorial +- Migration guide +- Scala 3 language reference + +ドキュメンテーションの種類に関わらずコミュニティからのコントリビューションを歓迎します。 + + +### コントリビューションの仕方 +一般に、 多くの異なった方法で私たちを支援することができます : +- **Confused about something in any of the docs?** Issue をたててください。 +- **最新の状態を反映していないドキュメントがある** Issueをたてるか、PR をつくってください。 +- **タイポの修正やその他ちょっとした文章の改善** Create a PR. +- **なにかを新しく追加したり大きな変更を加えたい** Great! Please open an issue and let us discuss this. + +Typically, each of the different documentation projects contain links (and so does this document, in the table-of-contents pane) to edit and improve them. Additionally, below we provide you with the necessary information to get started. + +## Scala 3 Book +[Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いています。 この本はScala 3 のすべての重要な機能の概説書です。これから Scala を使いはじめる読者を対象にしています。 + +- [Sources](https://github.com/scala/docs.scala-lang/tree/master/_overviews/scala3-book) +- [Issues](https://github.com/scala/docs.scala-lang/issues) + +## Macros Tutorial +[Macros Tutorial](/scala3/guides/macros)は Nicolas Stucki 氏 が書いています。この本では Scala 3 のマクロとそのベストプラクティスについて詳しく説明しています。 + +- [Sources](https://github.com/scala/docs.scala-lang/tree/master/_overviews/scala3-macros) +- [Issues](https://github.com/scala/docs.scala-lang/issues) + +## Migration Guide +[Scala 3 Migration Guide](https://scalacenter.github.io/scala-3-migration-guide/) は Scala 2 と Scala 3 の互換性、移行に役立つツールの紹介、そして詳しい移行のガイドを含んだ包括的なドキュメントです。 + +- [Contribution Overview](https://scalacenter.github.io/scala-3-migration-guide/docs/contributing.html) +- [Source](https://github.com/scalacenter/scala-3-migration-guide) +- [Issues](https://github.com/scalacenter/scala-3-migration-guide/issues) + + +## Scala 3 Language Reference +The [Dotty reference](https://dotty.epfl.ch/docs/reference/overview.html) will evolve into the Scala 3 language, containing a formal presentation and detailed technical information about the various features of the language. + +- [Sources](https://github.com/lampepfl/dotty/tree/master/docs/docs/reference) +- [Issues](https://github.com/lampepfl/dotty/issues) + + +[scala3-book]: {% link _overviews/scala3-book/introduction.md %} + +[best-practices]: {% link _overviews/scala3-macros/best-practices.md %} +[compiletime]: {% link _overviews/scala3-macros/tutorial/compiletime.md %} +[cross-compilation]: https://scalacenter.github.io/scala-3-migration-guide/docs/macros/migration-tutorial.html#cross-building +[inline]: {% link _overviews/scala3-macros/tutorial/inline.md %} +[macros]: {% link _overviews/scala3-macros/tutorial/macros.md %} +[migration-status]: https://scalacenter.github.io/scala-3-migration-guide/docs/macros/macro-libraries.html#macro-libraries +[quotes]: {% link _overviews/scala3-macros/tutorial/quotes.md %} +[tasty]: {% link _overviews/scala3-macros/tutorial/reflection.md %} +[reflection-api]: https://dotty.epfl.ch/api/scala/quoted.html From 5b7a355ce22b76c215dd2f10493b45f05010a81e Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Sat, 13 Feb 2021 00:15:03 +0900 Subject: [PATCH 06/28] chore: rm frontmattern props --- _ja/index.md | 4 +--- _ja/scala3/index.md | 2 +- _ja/scala3/new-in-scala3.md | 1 - 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/_ja/index.md b/_ja/index.md index 698eabb21c..92cadae0dd 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -2,8 +2,6 @@ layout: documentation title: ドキュメント language: ja -partof: documentation -discourse: true more-resources-label: その他のリソース @@ -23,7 +21,7 @@ scala3-sections: - title: "Scala 3 Book" description: "主要な言語仕様のイントロダクションをオンラインブックで読む" icon: "fa fa-book" - link: ja/scala3/book/introduction.html + link: /scala3/book/introduction.html - title: "More detailed information" links: - title: "Migration Guide" diff --git a/_ja/scala3/index.md b/_ja/scala3/index.md index d1561e0255..8e2a94cb49 100644 --- a/_ja/scala3/index.md +++ b/_ja/scala3/index.md @@ -22,7 +22,7 @@ sections: - title: "Scala 3 Book" description: "主要な言語仕様のイントロダクションをオンラインブックで読む" icon: "fa fa-book" - link: scala3/book/introduction.html + link: /scala3/book/introduction.html - title: "More detailed information" links: - title: "Migration Guide" diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 02e40cb209..45697bd453 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -3,7 +3,6 @@ layout: singlepage-overview language: ja title: New in Scala 3 scala3: true -discourse: true --- Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 From 4b4206cd8011c0e43ce6e5d1e81f3f404641c562 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Sat, 13 Feb 2021 20:31:47 +0900 Subject: [PATCH 07/28] add languages --- _ja/scala3/new-in-scala3.md | 1 - scala3/getting-started.md | 1 + scala3/new-in-scala3.md | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 45697bd453..c941fda37f 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -1,6 +1,5 @@ --- layout: singlepage-overview -language: ja title: New in Scala 3 scala3: true --- diff --git a/scala3/getting-started.md b/scala3/getting-started.md index 0f5e334fd1..f3fcfb1a8a 100644 --- a/scala3/getting-started.md +++ b/scala3/getting-started.md @@ -1,6 +1,7 @@ --- layout: singlepage-overview title: Getting Started with Scala 3 +languages: ["ja"] --- diff --git a/scala3/new-in-scala3.md b/scala3/new-in-scala3.md index 6516287849..8f28f0d5af 100644 --- a/scala3/new-in-scala3.md +++ b/scala3/new-in-scala3.md @@ -1,6 +1,7 @@ --- layout: singlepage-overview title: New in Scala 3 +languages: ["ja"] --- The upcoming, exciting new version of Scala 3 brings many improvements and new features. Here we provide you with a quick overview of the most important From 9020bd525b7ea41a71daec724ee3e9b33a7a62d0 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Sat, 13 Feb 2021 21:29:25 +0900 Subject: [PATCH 08/28] update getting started doc in ja --- _ja/scala3/getting-started.md | 79 ++++++++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 10 deletions(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index 37e0552e4c..d6c0586a04 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -16,7 +16,7 @@ _Scastie_ はScalaのコードがどのように動作するか試せるオン ## Scala をインストールする Scala をインストールするということはつまりさまざまなコマンドラインツールやビルドツールをインストールするということです。 -Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursierを使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。 +Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursierを使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 ### Scala インストーラ を使う (推奨) @@ -39,10 +39,17 @@ JVMs の管理に加えて、 `cs setup` コマンドは次のような便利な - [Ammonite](https://ammonite.io), 高機能 REPL - [scalafmt](https://scalameta.org/scalafmt), the Scala formatter - [Coursier CLI](https://get-coursier.io/docs/cli-overview), Scala で書かれたアプリケーションをインストールできます -- (Scala 2.13 向けの `scala` コマンドと `scalac` コマンド) +- (**Scala 2.13** 向けの `scala` コマンドと `scalac` コマンド。Scala 3 用ではありません。) -詳しくは、 [coursier-cli documentation](https://get-coursier.io/docs/cli-overview)を読んでください。 +`cs setup`を実行したら以下のコマンドで Java, Scala がインストールされているかどうか確認してください。 + +```shell +java --version +scala --version +``` + +詳しくは、 [coursier-cli documentation](https://get-coursier.io/docs/cli-overview)を読んでください。 ### ... または、手動でインストールする @@ -52,11 +59,13 @@ Scala プロジェクトをコンパイル、実行、テストやパッケー 1. Java を [Oracle Java 8](https://www.oracle.com/java/technologies/javase-jdk8-downloads.html), [Oracle Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html), か [AdoptOpenJDK 8/11](https://adoptopenjdk.net/)からダウンロードしてください。 Scala/Java の互換性の詳細については [JDK Compatibility](/overviews/jdk-compatibility/overview.html) を参照してください。 2. [sbt](https://www.scala-sbt.org/download.html) をインストールしてください。 +## sbtで “Hello, world” プロジェクトを作成する +Scala 3 をインストールする前に、Scala を使ったことがない開発者に向けて sbt を使ってプロジェクトを作成、実行する方法について解説します。 -## sbtで “Hello, world” プロジェクトを作成する +もし sbt でプロジェクトを作成する方法を既に知っているなら 「Scala 3 のインストール」 の章まで読み飛ばしてください。 -コマンドライン、IDEのどちらからでもプロジェクトを作成できます。 +コマンドライン、IDEのどちらからでも sbt プロジェクトを作成できます。 もし慣れているならコマンドラインツールを使うアプローチを推奨します。 @@ -74,7 +83,7 @@ sbt で新しくプロジェクトを作成するには次の手順に従って 1. `sbt new scala/hello-world.g8` コマンドを実行してください。 このコマンドを実行すると ['hello-world' template][template-url] を GitHub から pull します。 また、無視できる _target_ フォルダを作成します。 -1. アプリケーションを `hello-world` と名付けてください。 +1. ターミナルでアプリケーション名の入力を促されたら `hello-world` と入力してください。 "hello-world"と言う名前のプロジェクトが作成されます。 1. 次のようなファイル、ディレクトリが作成されるはずです: @@ -121,9 +130,9 @@ IDE を使ってプロジェクトを開きます。 -### View the source code +### ソースコードを見る -以下の2つのファイルをIDEで見てください。: +以下の2つのファイルをIDEで開いてください: - _build.sbt_ - _src/main/scala/Main.scala_ @@ -133,8 +142,7 @@ IDE を使ってプロジェクトを開きます。 ## “Hello, world” プロジェクトを実行する -If you’re comfortable using your IDE, you can run the code in _Main.scala_ from your IDE. -IDEを快適に使用できるなら、 _Main.scala_ に書かれたコードをIDEから実行してください。 +IDEを使ってコードを書くのに特に抵抗がないなら、 _Main.scala_ に書かれたコードをIDEから実行してください。 そうでないなら、次のような手順でターミナルからアプリケーションを実行することもできます。 @@ -147,6 +155,57 @@ IDEを快適に使用できるなら、 _Main.scala_ に書かれたコードを `exit`と入力するか `[Ctrl][d]` ショートカットをおすと sbt から出てコマンドプロンプトに戻ります。 +### Scala 3 のインストール + +Scala 3 を始めるには以下のような方法があります。詳しくは[こちら](https://dotty.epfl.ch/)も参照してください。 + +1. sbt をインストールし sbt で`sbt new lampepfl/dotty.g8` を実行して Scala 3 プロジェクトを始めることができます。 +1. 先に説明した通り、`cs setup` コマンドを使って Java、Scala(2.**)の環境をセットアップすることができます。 また、`cs install scala3-compiler`、`cs install scala3-repl`コマンドでそれぞれ Scala 3 のコンパイラ、 Scala 3 の REPL をインストールできます。 +1. Scala 3 のソースを[ここ](https://github.com/lampepfl/dotty/releases)から手動でインストールすることができます。 + +#### sbt を使って Scala 3 プロジェクトをはじめる(オプショナル) + +上の手順で`cs setup` をすでに実行しているなら `sbt`コマンドが使えるようになっているはずです。 以下のコマンドを実行することで Scala 3 のテンプレートプロジェクトを作れます。 +```shell +sbt new lampepfl/dotty.g8 +``` + +Scala 2 とクロスコンパイル可能なプロジェクトテンプレートを利用する場合は以下のコマンドを実行してください。 + +```shell +sbt new lampepfl/dotty-cross.g8 +``` +#### Coursierを使ってScala 3 用のコンパイラと REPL をインストールする(オプショナル) + +以下では Scala 3 のコンパイラ、REPLと Scala 3 をインストールする手順を説明します。 + +```shell +cs install scala3-compiler +cs install scala3-repl +``` + +インストールしたコンパイラ、REPL は`cs launch ` で実行できます。 +```shell +cs launch scala3-compiler -- Hello.scala +``` + +```shell +cs launch scala3-repl +``` + + + +#### Scala 3 を手動でインストールする(オプショナル) + +Scala 3 はまだリリースされていないので Github から最新のソース(2021/02時点で scala3-3.0.0-M3 )を直接ダウンロードしてpathを通してください。 + +```shell +wget https://github.com/lampepfl/dotty/releases/download/3.0.0-M3/scala3-3.0.0-M3.tar.gz +tar -zxvf scala3-3.0.0-M3.tar.gz +``` + + + ## 次のステップ From 1c7a1787661cb1c42825d90d5197936508aa0de7 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 10:59:17 +0900 Subject: [PATCH 09/28] finish translating congribute-to-docs --- _ja/scala3/contribute-to-docs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 5f88f0b059..6cb859d740 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -22,10 +22,10 @@ Scala 3 の高品質なドキュメンテーションを作るためのいくつ 一般に、 多くの異なった方法で私たちを支援することができます : - **Confused about something in any of the docs?** Issue をたててください。 - **最新の状態を反映していないドキュメントがある** Issueをたてるか、PR をつくってください。 -- **タイポの修正やその他ちょっとした文章の改善** Create a PR. -- **なにかを新しく追加したり大きな変更を加えたい** Great! Please open an issue and let us discuss this. +- **タイポの修正やその他ちょっとした文章の改善** PRをつくってください。 +- **なにかを新しく追加したり大きな変更を加えたい** 議論できるようIssueをたててください。 -Typically, each of the different documentation projects contain links (and so does this document, in the table-of-contents pane) to edit and improve them. Additionally, below we provide you with the necessary information to get started. +通常、ドキュメントプロジェクトのそれぞれには編集・改善用のリンクが含まれています。(このドキュメントについても同様で、目次の領域にあります。) また、コントリビューションをはじめるために必要な情報は以下に記載されています。 ## Scala 3 Book [Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いています。 この本はScala 3 のすべての重要な機能の概説書です。これから Scala を使いはじめる読者を対象にしています。 @@ -48,7 +48,7 @@ Typically, each of the different documentation projects contain links (and so do ## Scala 3 Language Reference -The [Dotty reference](https://dotty.epfl.ch/docs/reference/overview.html) will evolve into the Scala 3 language, containing a formal presentation and detailed technical information about the various features of the language. +The [Dotty reference](https://dotty.epfl.ch/docs/reference/overview.html) は Scala 3 になる予定です。これにはさまざまな言語仕様に関する公式のプレゼンテーションや技術的情報が含まれています。 - [Sources](https://github.com/lampepfl/dotty/tree/master/docs/docs/reference) - [Issues](https://github.com/lampepfl/dotty/issues) From 022bae3a25b56724df1248065841b5f12d7f375c Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 11:03:41 +0900 Subject: [PATCH 10/28] finish translating new-in-scala3 --- _ja/scala3/new-in-scala3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index c941fda37f..6ada195dcb 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -61,8 +61,8 @@ Scala3 ではひとつの強力な機能として`implicit`を提供するので ### 再構想: オブジェクト指向プログラミング -Scala has always been at the frontier between functional programming and object-oriented programming -- -and Scala 3 pushes boundaries in both directions! 先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 +Scala は常に関数型プログラミングとオブジェクト指向プログラミングの間のフロンティアにあります。そしてScala 3 はその境界を両方に広げます。 +先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 同時に、次に掲げる新機能を使うと _オブジェクト指向設計_ をうまく構造化してベストプラクティスを実践しやすくなります。 - **Pass it on**. Traits は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによってtraitはソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 - **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するためScala 3 では [open classes][oo-open]の概念を導入することによって _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 From fef3d9fb105894a894d4905d83f7173674ecc47f Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 11:19:46 +0900 Subject: [PATCH 11/28] refine some sentences --- _ja/scala3/getting-started.md | 16 ++++++++-------- _ja/scala3/new-in-scala3.md | 15 +++++++-------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index d6c0586a04..ebfa579425 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -21,7 +21,7 @@ Scalaのインストーラツールの"Coursier"を使うのがおすすめで ### Scala インストーラ を使う (推奨) Scala インストーラは [Coursier](https://get-coursier.io/docs/cli-overview)という名前のツールで、メインコマンドは`cs`です。 -Coursier はシステムにJVMとScala のツールがインストールされているかどうか確認します。 +Coursier はシステムに JVM と Scala のツールがインストールされているかどうか確認します。 次の手順に従って Coursier をインストールしてください。 @@ -79,10 +79,10 @@ sbt を使って Scala のコードをコンパイル、実行やテストでき sbt で新しくプロジェクトを作成するには次の手順に従ってください。: -1. `cd` コマンドでからのディレクトリに移動してください。 +1. `cd` コマンドで新しいディレクトリに移動してください。 1. `sbt new scala/hello-world.g8` コマンドを実行してください。 このコマンドを実行すると ['hello-world' template][template-url] を GitHub から pull します。 -また、無視できる _target_ フォルダを作成します。 +また、無視してよい _target_ フォルダを作成します。 1. ターミナルでアプリケーション名の入力を促されたら `hello-world` と入力してください。 "hello-world"と言う名前のプロジェクトが作成されます。 1. 次のようなファイル、ディレクトリが作成されるはずです: @@ -95,7 +95,7 @@ hello-world/ Main.scala (プログラムのエントリーポイントです。) build.sbt (sbt の ビルド定義ファイルです。) ``` -今のところ `src/main/scala` にある`Main.scala` しか必要ありません。 +今のところ `src/main/scala` にある `Main.scala` しか必要ありません。 sbt の詳しいドキュメントは [Scala Book](/scala3/book/scala-tools.html) と sbt 公式 [documentation](https://www.scala-sbt.org/1.x/docs/index.html) にあります。 @@ -113,19 +113,19 @@ IDE を使ってプロジェクトを開きます。 最も人気なエディタは IntelliJ IDEA と VS Code です。 どちらも 高度な IDE 機能を提供しています。しかし、 [その他のエディタ](https://scalameta.org/metals/docs/editors/overview.html)を使うこともできます。 -### Using IntelliJ IDEA +### IntelliJ IDEA を利用する 1. [IntelliJ Community Edition](https://www.jetbrains.com/idea/download/) をダウンロード、インストールしてください。 1. リンク先の手順に従って Scala プラグインをインストールしてください。 [the instructions on how to install IntelliJ plugins](https://www.jetbrains.com/help/idea/managing-plugins.html) 1. _build.sbt_ ファイルを開いて、 _Open as a project_ を選択してください。 -### Using VS Code with Metals +### VS Code と Metals を利用する 1. [VS Code](https://code.visualstudio.com/Download) をダウンロードしてください。 1. [Marketplace](https://marketplace.visualstudio.com/items?itemName=scalameta.metals) から 拡張機能 Metals をインストールしてください。 1. 次に、_build.sbt_ ファイルが置いてあるディレクトリを開いてください。ダイアログが表示されたら _Import build_ をおしてください。 ->[Metals](https://scalameta.org/metals) は Scala の lauguage server です。Metals は Lauguage Server Protocol を使ってVS Code やその他のエディタ、たとえば[Atom, Sublime Text, and more](https://scalameta.org/metals/docs/editors/overview.html)、で Scala を書くための機能を提供します。 +>[Metals](https://scalameta.org/metals) は Scala の lauguage server です。Metals は Lauguage Server Protocol を使ってVS Code やその他のエディタ、たとえば[Atom, Sublime Text, and more](https://scalameta.org/metals/docs/editors/overview.html)、で Scala を書くための補助機能を提供します。 (Metals の仕組みについて詳しく知りたい方は、以下のリンクをご覧ください。 [“Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals”](https://www.scala-lang.org/2019/04/16/metals.html).) @@ -144,7 +144,7 @@ IDE を使ってプロジェクトを開きます。 IDEを使ってコードを書くのに特に抵抗がないなら、 _Main.scala_ に書かれたコードをIDEから実行してください。 -そうでないなら、次のような手順でターミナルからアプリケーションを実行することもできます。 +そうでないなら、次の手順でターミナルからアプリケーションを実行することもできます。 1. `cd` コマンドで _hello-world_ に移動してください。 1. `sbt` コマンドを実行してください。sbt console が開きます。 diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 6ada195dcb..20c6c01524 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -11,12 +11,11 @@ Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能 - [Scala 3 Book]({% link _overviews/scala3-book/introduction.md %}) はScalaを書いたことがない開発者向けに書かれています。 - [Syntax Summary][syntax-summary] ではScala 3 で新しく追加されたシンタックスを解説しています。 -- [Language Reference][reference] を見ればScala 2とScala 3の変更点を詳しく確認できます。 +- [Language Reference][reference] を見ればScala 2 と Scala 3の変更点を詳しく確認できます。 - Scala 2 からScala 3 への移行を考えている方は[Migration Guide][migration] をご覧ください。 ## What's new in Scala 3 -Scala 3 は Scala 2 を徹底的に見直して再設計されています。 At its core, many aspects -of the type-system have been change to be more principled. この変更によって新機能(ユニオン型)が使えるようになったこともそうですが、なにより型システムがさらに使いやすくなりました。 例えば、[型推論][type-inference] や overload resolution が改善されました. +Scala 3 は Scala 2 を徹底的に見直して再設計されています。核心部分で、型システムの多くの面が変更されより原理原則に基づいたものになりました。この変更によって新機能(ユニオン型)が使えるようになったこともそうですが、なにより型システムがさらに使いやすくなりました。 例えば、[型推論][type-inference] や overload resolution が改善されました. ### 新機能 & 特長: 文法 (重要度の低い)多くの文法の整理に加えて、Scala 3 の文法は次のように改善されました。 @@ -28,7 +27,7 @@ of the type-system have been change to be more principled. この変更によっ - Implicitsとその文法が [大幅に修正][implicits]されました. ### Opinionated: Contextual Abstractions -それぞれを組み合わせることで高い(そして時には見たこともないような)表現力を発揮する一連の強力な機能をユーザーにあたえることがScalaの当初のコアコンセプトとしてありました。(これは今でもある程度は当てはまります) 例えば _implicit_ の機能は、コンテキストの受け渡し、型レベル演算、型クラス、暗黙の変換、既存クラスの拡張メソッドなどに使われています。 +それぞれを組み合わせることで高い(そして時には見たこともないような)表現力を発揮する一連の強力な機能をユーザーにあたえることがScalaの当初のコアコンセプトとしてありました。(これは今でもある程度は当てはまります。) 例えば _implicit_ の機能は、コンテキストの受け渡し、型レベル演算、型クラス、暗黙の変換、既存クラスの拡張メソッドなどに使われています。 これらのユースケースを参考にして、Scala 3 では少し違ったアプローチをとっています。Scala 3 では、`implicit`がどのようなメカニズムによるものか、ということよりもどのような意図で使われるのかに焦点を当てています。 @@ -50,11 +49,11 @@ Scala3 ではひとつの強力な機能として`implicit`を提供するので - **Opaque Types**. [opaque type aliases][types-opaque]を使うとパフォーマンス低下の懸念なしに実装の詳細を隠ぺいできます。 Opaque types は値クラスにとってかわる概念です。Opaque types を使うとBoxingのオーバーヘッドを起こすことなく抽象化のバリアを設定できます。 -- **Intersection and union types**. 型システムを新しい基盤に置いたことで、新しい型システムの機能が使えるようになりました: 交差型 [intersection types][types-intersection](`A & B` と表記する)のインスタンスは `A` でありかつ `B`であるような型のインスタンスです。 合併型[union types][types-union](`A | B` と表記する) のインスタンスは `A`または`B`のどちらか一方の型のインスタンスです。 これらの2つの構成体は開発者が継承ヒエラルキー以外の方法で柔軟に型制約を表現できるようにします。 +- **Intersection and union types**. 型システムの基盤を刷新したことで、新しい型システムの機能が使えるようになりました: 交差型 [intersection types][types-intersection](`A & B` と表記する)のインスタンスは `A` でありかつ `B`であるような型のインスタンスです。 合併型[union types][types-union](`A | B` と表記する) のインスタンスは `A`または`B`のどちらか一方の型のインスタンスです。 これらの2つの構成体は開発者が継承ヒエラルキー以外の方法で柔軟に型制約を表現できるようにします。 - **Dependent function types**. Scala 2 ではすでに引数の型に応じて返り値の型を変化させることができました。Scala 3 ではこのパターンをさらに抽象化することができ、[dependent function types][types-dependent]を表現することができます。 つまり `type F = (e: Entry) => e.Key` というふうに、返り値の型が引数によって変化するように書けます。 -- **Polymorphic function types**.dependent function types のように Scala 2 では型パラメタを受け取るメソッドを定義することができました。 しかし、開発者はこれらのメソッドをさらに抽象化することはできませんでした。Scala 3 では、`[A] => List[A] => List[A]` といった書き方をする[polymorphic function types][types-polymorphic] を使って引数に加えて型引数をとるような関数を抽象化できます。 +- **Polymorphic function types**. dependent function types のように Scala 2 では型パラメタを受け取るメソッドを定義することができました。 しかし、開発者はこれらのメソッドをさらに抽象化することはできませんでした。Scala 3 では、`[A] => List[A] => List[A]` といった書き方をする[polymorphic function types][types-polymorphic] を使って引数に加えて型引数をとるような関数を抽象化できます。 - **Type lambdas**. Scala 2 で[compiler plugin](https://github.com/typelevel/kind-projector)を使わないと表現できなかった型ラムダは Scala 3 では第一級の機能としてサポートされています。: 型ラムダは補助的な型を定義しないでも高階型引数として引数を受け渡せる型レベルの関数です。 - **Match types**. 暗黙の型解決を使って型レベル演算をエンコードする代わりに、Scala 3 では型のパターンマッチング[matching on types][types-match]をサポートしています。 型レベルの演算を型チェックと統合することでエラーメッセージをわかりやすく改善し、また複雑なエンコーディングをしなくていいようにしています。 @@ -65,8 +64,8 @@ Scala は常に関数型プログラミングとオブジェクト指向プロ 先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 同時に、次に掲げる新機能を使うと _オブジェクト指向設計_ をうまく構造化してベストプラクティスを実践しやすくなります。 - **Pass it on**. Traits は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによってtraitはソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 -- **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するためScala 3 では [open classes][oo-open]の概念を導入することによって _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 -- **Hide implementation details**. ふるまいを実装したUtility traits は推論される型に含まれるべきでない場合があります。Scala 3 ではそのようなtraitsに [transparent][oo-transparent] とマークすることで継承をユーザーに公開しないようにすることができます。 +- **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するため Scala 3 では [open classes][oo-open]の概念を導入することで _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 +- **Hide implementation details**. ふるまいを実装した Utility traits は推論される型に含まれるべきでない場合があります。Scala 3 ではそのようなtraitsに [transparent][oo-transparent] とマークすることで継承をユーザーに公開しないようにすることができます。 - **Composition over inheritance**. このフレーズはしばしば引用されますが、実装するのは面倒です。 しかしScala 3 の [export clauses][oo-export]を使えば楽になります。imports と対称的に、 export clauses はオブジェクトの特定のメンバーへアクセスするためのエイリアスを定義します。 - **No more NPEs**. Scala 3 はかつてないほどnull安全です。: [explicit null][oo-explicit-null] によって `null` を型ヒエラルキーの外側に追い出しました。これによってエラーを静的にキャッチしやすくなります。また、 [safe initialization][oo-safe-init]の追加的なチェックで初期化されていないオブジェクトへのアクセスを検知できます。 From a3fecccbb7995e6be01d70db7f8ba135731c9fb6 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 11:27:00 +0900 Subject: [PATCH 12/28] fix typo --- _ja/scala3/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/index.md b/_ja/scala3/index.md index 8e2a94cb49..36d16d28bb 100644 --- a/_ja/scala3/index.md +++ b/_ja/scala3/index.md @@ -38,7 +38,7 @@ sections: icon: "fa fa-file-text" link: https://dotty.epfl.ch/api/index.html - title: "Language Reference" - description: "Scala 3 の言語使用" + description: "Scala 3 の言語仕様" icon: "fa fa-book" link: https://dotty.epfl.ch/docs/reference/overview.html --- \ No newline at end of file From d7b6ef70f3118cdc86b99587030dbc8aaf0c499b Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 11:31:26 +0900 Subject: [PATCH 13/28] fix typo --- _ja/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/index.md b/_ja/index.md index 92cadae0dd..f061db93f5 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -37,7 +37,7 @@ scala3-sections: icon: "fa fa-file-text" link: https://dotty.epfl.ch/api/index.html - title: "Language Reference" - description: "Scala 3 の言語使用" + description: "Scala 3 の言語仕様" icon: "fa fa-book" link: https://dotty.epfl.ch/docs/reference/overview.html From 8a2116d2903b04c8eb92f9ab68d19cf62a690b00 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:35:22 +0900 Subject: [PATCH 14/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/index.md b/_ja/index.md index f061db93f5..24d562362d 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -29,7 +29,7 @@ scala3-sections: icon: "fa fa-suitcase" link: https://scalacenter.github.io/scala-3-migration-guide/ - title: "Guides" - description: "Scala3の言語仕様からピックアップして解説" + description: "Scala 3 の言語仕様からピックアップして解説" icon: "fa fa-map" link: /ja/scala3/guides.html - title: "API" From fec208752cfc4c68e1ffc4257f43557d45061394 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:35:36 +0900 Subject: [PATCH 15/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/index.md b/_ja/index.md index 24d562362d..d855a787e3 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -15,7 +15,7 @@ scala3-sections: icon: "fa fa-star" link: /ja/scala3/new-in-scala3.html - title: "Scala 3 をはじめる" - description: "あなたのコンピューターにScala 3 をインストールしてScalaコードを書きはじめよう!" + description: "あなたのコンピューターに Scala 3 をインストールしてScalaコードを書きはじめよう!" icon: "fa fa-rocket" link: /ja/scala3/getting-started.html - title: "Scala 3 Book" From 9ca832ec92cbc99c6cecda48f1f82dec2ce58303 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:35:55 +0900 Subject: [PATCH 16/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/index.md b/_ja/index.md index d855a787e3..8167613f05 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -25,7 +25,7 @@ scala3-sections: - title: "More detailed information" links: - title: "Migration Guide" - description: "Scala 2 からScala 3 へ移行するためのガイド" + description: "Scala 2 から Scala 3 へ移行するためのガイド" icon: "fa fa-suitcase" link: https://scalacenter.github.io/scala-3-migration-guide/ - title: "Guides" From d6308ea1ce2e0e5a85bd14b3c11d1ce1e48266da Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:36:30 +0900 Subject: [PATCH 17/28] fix missed translation Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/contribute-to-docs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 6cb859d740..437c75a336 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -20,7 +20,7 @@ Scala 3 の高品質なドキュメンテーションを作るためのいくつ ### コントリビューションの仕方 一般に、 多くの異なった方法で私たちを支援することができます : -- **Confused about something in any of the docs?** Issue をたててください。 +- **ドキュメントのどこかで混乱するところがある** Issue をたててください。 - **最新の状態を反映していないドキュメントがある** Issueをたてるか、PR をつくってください。 - **タイポの修正やその他ちょっとした文章の改善** PRをつくってください。 - **なにかを新しく追加したり大きな変更を加えたい** 議論できるようIssueをたててください。 From bff0fb9b01d18233027b8bdf712273aaa5c86552 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:36:45 +0900 Subject: [PATCH 18/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/contribute-to-docs.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 437c75a336..654763633b 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -21,9 +21,9 @@ Scala 3 の高品質なドキュメンテーションを作るためのいくつ ### コントリビューションの仕方 一般に、 多くの異なった方法で私たちを支援することができます : - **ドキュメントのどこかで混乱するところがある** Issue をたててください。 -- **最新の状態を反映していないドキュメントがある** Issueをたてるか、PR をつくってください。 -- **タイポの修正やその他ちょっとした文章の改善** PRをつくってください。 -- **なにかを新しく追加したり大きな変更を加えたい** 議論できるようIssueをたててください。 +- **最新の状態を反映していないドキュメントがある** Issue をたてるか、PR をつくってください。 +- **タイポの修正やその他ちょっとした文章の改善** PR をつくってください。 +- **なにかを新しく追加したり大きな変更を加えたい** 議論できるよう Issue をたててください。 通常、ドキュメントプロジェクトのそれぞれには編集・改善用のリンクが含まれています。(このドキュメントについても同様で、目次の領域にあります。) また、コントリビューションをはじめるために必要な情報は以下に記載されています。 From a331c4a5ceb998639e6df8bf7ed8554e7dde1fd2 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:37:01 +0900 Subject: [PATCH 19/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index ebfa579425..c3f80ce728 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -10,7 +10,7 @@ language: ja ## Try Scala without installing anything いますぐ Scala 3 を試してみたいなら ブラウザ上で動作する“Scastie” を使ってみてください。 -_Scastie_ はScalaのコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 +_Scastie_ は Scala のコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 ## Scala をインストールする From d20cdeb0d73bfb733865cf6537d280092f9f80d1 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:38:14 +0900 Subject: [PATCH 20/28] remove plural form Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index c3f80ce728..69b52cc5f6 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -32,7 +32,7 @@ Coursier はシステムに JVM と Scala のツールがインストールさ -JVMs の管理に加えて、 `cs setup` コマンドは次のような便利なコマンドラインツールもインストールします。: +JVM の管理に加えて、 `cs setup` コマンドは次のような便利なコマンドラインツールもインストールします。: - JDK - ビルドツール [sbt](https://www.scala-sbt.org) と [mill](https://www.lihaoyi.com/mill) From 67bdb89a6548f44beafce9ec91dbd3b1adb3fee6 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:38:41 +0900 Subject: [PATCH 21/28] remove plural form Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/new-in-scala3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 20c6c01524..39d9b3536b 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -63,7 +63,7 @@ Scala3 ではひとつの強力な機能として`implicit`を提供するので Scala は常に関数型プログラミングとオブジェクト指向プログラミングの間のフロンティアにあります。そしてScala 3 はその境界を両方に広げます。 先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 同時に、次に掲げる新機能を使うと _オブジェクト指向設計_ をうまく構造化してベストプラクティスを実践しやすくなります。 -- **Pass it on**. Traits は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによってtraitはソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 +- **Pass it on**. Trait は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによって trait はソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 - **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するため Scala 3 では [open classes][oo-open]の概念を導入することで _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 - **Hide implementation details**. ふるまいを実装した Utility traits は推論される型に含まれるべきでない場合があります。Scala 3 ではそのようなtraitsに [transparent][oo-transparent] とマークすることで継承をユーザーに公開しないようにすることができます。 - **Composition over inheritance**. このフレーズはしばしば引用されますが、実装するのは面倒です。 しかしScala 3 の [export clauses][oo-export]を使えば楽になります。imports と対称的に、 export clauses はオブジェクトの特定のメンバーへアクセスするためのエイリアスを定義します。 From 5ef8d5f25cd5bde08654b24cd6d45ad5bb28be78 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 12:38:55 +0900 Subject: [PATCH 22/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/new-in-scala3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 39d9b3536b..35ff2dc069 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -5,7 +5,7 @@ scala3: true --- Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 -ここではScala 3 の特に重要な変更点を概観します。 +ここでは Scala 3 の特に重要な変更点を概観します。 より詳しく知りたい方は以下の参考リンクをご覧ください。 From 43a0c7f1fa6bcfecdf65d459b46be9df01a6b5f2 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 12:47:22 +0900 Subject: [PATCH 23/28] correct and refine writings --- _ja/index.md | 4 ++-- _ja/scala3/contribute-to-docs.md | 2 +- _ja/scala3/getting-started.md | 12 ++++++------ _ja/scala3/index.md | 4 ++-- _ja/scala3/new-in-scala3.md | 30 +++++++++++++++--------------- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/_ja/index.md b/_ja/index.md index f061db93f5..5b3eabc122 100644 --- a/_ja/index.md +++ b/_ja/index.md @@ -25,11 +25,11 @@ scala3-sections: - title: "More detailed information" links: - title: "Migration Guide" - description: "Scala 2 からScala 3 へ移行するためのガイド" + description: "Scala 2 から Scala 3 へ移行するためのガイド" icon: "fa fa-suitcase" link: https://scalacenter.github.io/scala-3-migration-guide/ - title: "Guides" - description: "Scala3の言語仕様からピックアップして解説" + description: "Scala 3 の言語仕様からピックアップして解説" icon: "fa fa-map" link: /ja/scala3/guides.html - title: "API" diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 6cb859d740..2bba6ff8a1 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -28,7 +28,7 @@ Scala 3 の高品質なドキュメンテーションを作るためのいくつ 通常、ドキュメントプロジェクトのそれぞれには編集・改善用のリンクが含まれています。(このドキュメントについても同様で、目次の領域にあります。) また、コントリビューションをはじめるために必要な情報は以下に記載されています。 ## Scala 3 Book -[Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いています。 この本はScala 3 のすべての重要な機能の概説書です。これから Scala を使いはじめる読者を対象にしています。 +[Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いています。 この本は Scala 3 のすべての重要な機能の概説書です。これから Scala を使いはじめる読者を対象にしています。 - [Sources](https://github.com/scala/docs.scala-lang/tree/master/_overviews/scala3-book) - [Issues](https://github.com/scala/docs.scala-lang/issues) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index ebfa579425..72adf3bce5 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -10,13 +10,13 @@ language: ja ## Try Scala without installing anything いますぐ Scala 3 を試してみたいなら ブラウザ上で動作する“Scastie” を使ってみてください。 -_Scastie_ はScalaのコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 +_Scastie_ は Scala のコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 ## Scala をインストールする -Scala をインストールするということはつまりさまざまなコマンドラインツールやビルドツールをインストールするということです。 -Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursierを使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 +Scala をインストールするということはつまり、さまざまなコマンドラインツールやビルドツールをインストールするということです。 +Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursier を使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 ### Scala インストーラ を使う (推奨) @@ -53,7 +53,7 @@ scala --version ### ... または、手動でインストールする -Scala プロジェクトをコンパイル、実行、テストやパッケージングするには次の二つのツールだけで十分です。Java 8 または 11、そしてsbtです。 +Scala プロジェクトをコンパイル、実行、テストやパッケージングするには次の二つのツールだけで十分です。Java 8 または 11、そして sbt です。 これらのツールを手動でインストールするには、以下の手順に従ってください。 1. Java を [Oracle Java 8](https://www.oracle.com/java/technologies/javase-jdk8-downloads.html), [Oracle Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html), か [AdoptOpenJDK 8/11](https://adoptopenjdk.net/)からダウンロードしてください。 Scala/Java の互換性の詳細については [JDK Compatibility](/overviews/jdk-compatibility/overview.html) を参照してください。 @@ -65,7 +65,7 @@ Scala 3 をインストールする前に、Scala を使ったことがない開 もし sbt でプロジェクトを作成する方法を既に知っているなら 「Scala 3 のインストール」 の章まで読み飛ばしてください。 -コマンドライン、IDEのどちらからでも sbt プロジェクトを作成できます。 +コマンドライン、IDE のどちらからでも sbt プロジェクトを作成できます。 もし慣れているならコマンドラインツールを使うアプローチを推奨します。 @@ -177,7 +177,7 @@ sbt new lampepfl/dotty-cross.g8 ``` #### Coursierを使ってScala 3 用のコンパイラと REPL をインストールする(オプショナル) -以下では Scala 3 のコンパイラ、REPLと Scala 3 をインストールする手順を説明します。 +以下では Scala 3 のコンパイラ、REPL と Scala 3 をインストールする手順を説明します。 ```shell cs install scala3-compiler diff --git a/_ja/scala3/index.md b/_ja/scala3/index.md index 36d16d28bb..f44799ef9b 100644 --- a/_ja/scala3/index.md +++ b/_ja/scala3/index.md @@ -26,11 +26,11 @@ sections: - title: "More detailed information" links: - title: "Migration Guide" - description: "Scala 2 からScala 3 へ移行するためのガイド" + description: "Scala 2 から Scala 3 へ移行するためのガイド" icon: "fa fa-suitcase" link: https://scalacenter.github.io/scala-3-migration-guide/ - title: "Guides" - description: "Scala3の言語仕様からピックアップして解説" + description: "Scala 3 の言語仕様からピックアップして解説" icon: "fa fa-map" link: /ja/scala3/guides.html - title: "API" diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 20c6c01524..42d12e2a11 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -4,15 +4,15 @@ title: New in Scala 3 scala3: true --- -Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 -ここではScala 3 の特に重要な変更点を概観します。 +Scala 3 は Scala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 +ここでは Scala 3 の特に重要な変更点を概観します。 より詳しく知りたい方は以下の参考リンクをご覧ください。 -- [Scala 3 Book]({% link _overviews/scala3-book/introduction.md %}) はScalaを書いたことがない開発者向けに書かれています。 -- [Syntax Summary][syntax-summary] ではScala 3 で新しく追加されたシンタックスを解説しています。 -- [Language Reference][reference] を見ればScala 2 と Scala 3の変更点を詳しく確認できます。 -- Scala 2 からScala 3 への移行を考えている方は[Migration Guide][migration] をご覧ください。 +- [Scala 3 Book]({% link _overviews/scala3-book/introduction.md %}) は Scala を書いたことがない開発者向けに書かれています。 +- [Syntax Summary][syntax-summary] では Scala 3 で新しく追加されたシンタックスを解説しています。 +- [Language Reference][reference] を見ればScala 2 と Scala 3 の変更点を詳しく確認できます。 +- Scala 2 から Scala 3 への移行を考えている方は[Migration Guide][migration] をご覧ください。 ## What's new in Scala 3 Scala 3 は Scala 2 を徹底的に見直して再設計されています。核心部分で、型システムの多くの面が変更されより原理原則に基づいたものになりました。この変更によって新機能(ユニオン型)が使えるようになったこともそうですが、なにより型システムがさらに使いやすくなりました。 例えば、[型推論][type-inference] や overload resolution が改善されました. @@ -21,7 +21,7 @@ Scala 3 は Scala 2 を徹底的に見直して再設計されています。核 (重要度の低い)多くの文法の整理に加えて、Scala 3 の文法は次のように改善されました。 - 制御構造( `if`, `while`, や `for`)を書く際に括弧を省略してより簡潔に書けるようになりました。 ([new control syntax][syntax-control]) -- `new` キーワードがオプショナルになりました。 (_aka_ [creator applications][creator]) +- `new` キーワードがオプショナルになりました。 (_aka_ [creator applications][creator]) - [Optional braces][syntax-indentation]: クロージャを中括弧`{}`ではなくインデントで表現できるようになりました。 - [ワイルドカード型][syntax-wildcard] が `_` から `?` に変更されました。 - Implicitsとその文法が [大幅に修正][implicits]されました. @@ -31,14 +31,14 @@ Scala 3 は Scala 2 を徹底的に見直して再設計されています。核 これらのユースケースを参考にして、Scala 3 では少し違ったアプローチをとっています。Scala 3 では、`implicit`がどのようなメカニズムによるものか、ということよりもどのような意図で使われるのかに焦点を当てています。 -Scala3 ではひとつの強力な機能として`implicit`を提供するのではなく、開発者がその意図を表現しやすいように複数の異なる言語機能として提供しています。 +Scala 3 ではひとつの強力な機能として`implicit`を提供するのではなく、開発者がその意図を表現しやすいように複数の異なる言語機能として提供しています。 - **Abtracting over contextual information**. [Using clauses][contextual-using]を使って呼び出し時に利用可能で、暗黙に引き渡されるべき情報を抽象化することができます。Scala 2 からの改善としては、`using` 節が型だけで指定できるようになったことが挙げられます。 これによって明示的に参照されることのない関数の引数に命名する必要がなくなりました。 - **Providing Type-class instances**. [Given instances][contextual-givens] を使ってある型に対応する _canonical value_ を定義することができます。実装を公開することなく、型クラスを使ったプログラミングをよりわかりやすく書けます。。 -- **Retroactively extending classes**. In Scala 2 では拡張メソッドは暗黙の変換か implicit classを使って書くことができました. 一方 Scala 3 では [extension methods][contextual-extension] が直接的に言語使用に含まれているのでよりわかりやすいエラーメッセージを表示できます。型推論も改善されました。 +- **Retroactively extending classes**. Scala 2 では拡張メソッドは暗黙の変換か implicit classを使って書くことができました. 一方 Scala 3 では [extension methods][contextual-extension] が直接的に言語使用に含まれているのでよりわかりやすいエラーメッセージを表示できます。型推論も改善されました。 - **Viewing one type as another**. 暗黙の変換は型クラス`Conversion`のインスタンスとしてゼロから [再設計][contextual-conversions]されました。 -- **Higher-order contextual abstractions**. 全く新しい 機能である [context functions][contextual-functions] は暗黙の引数をとる関数型を第一級オブジェクトとして扱います。この機能はライブラリ作者にとって重要です。また、簡潔なドメイン特化言語(DSL)を記述するのにも役立ちます。 +- **Higher-order contextual abstractions**. 全く新しい機能である [context functions][contextual-functions] は暗黙の引数をとる関数型を第一級オブジェクトとして扱います。この機能はライブラリ作者にとって重要です。また、簡潔なドメイン特化言語(DSL)を記述するのにも役立ちます。 - **Actionable feedback from the compiler**. コンパイラが暗黙の引数の解決に失敗した場合、解決に役立つ [import suggestions](https://www.scala-lang.org/blog/2020/05/05/scala-3-import-suggestions.html) を提示します。 @@ -47,7 +47,7 @@ Scala3 ではひとつの強力な機能として`implicit`を提供するので - **Enumerations**. [Enums][enums] は case class と上手く組み合わせられるよう、また代数的データ型[algebraic data types][enums-adts]の新しい標準をつくるために再設計されました -- **Opaque Types**. [opaque type aliases][types-opaque]を使うとパフォーマンス低下の懸念なしに実装の詳細を隠ぺいできます。 Opaque types は値クラスにとってかわる概念です。Opaque types を使うとBoxingのオーバーヘッドを起こすことなく抽象化のバリアを設定できます。 +- **Opaque Types**. [opaque type aliases][types-opaque]を使うとパフォーマンス低下の懸念なしに実装の詳細を隠ぺいできます。 Opaque types は値クラスにとってかわる概念です。Opaque types を使うと Boxing のオーバーヘッドを起こすことなく抽象化のバリアを設定できます。 - **Intersection and union types**. 型システムの基盤を刷新したことで、新しい型システムの機能が使えるようになりました: 交差型 [intersection types][types-intersection](`A & B` と表記する)のインスタンスは `A` でありかつ `B`であるような型のインスタンスです。 合併型[union types][types-union](`A | B` と表記する) のインスタンスは `A`または`B`のどちらか一方の型のインスタンスです。 これらの2つの構成体は開発者が継承ヒエラルキー以外の方法で柔軟に型制約を表現できるようにします。 @@ -60,14 +60,14 @@ Scala3 ではひとつの強力な機能として`implicit`を提供するので ### 再構想: オブジェクト指向プログラミング -Scala は常に関数型プログラミングとオブジェクト指向プログラミングの間のフロンティアにあります。そしてScala 3 はその境界を両方に広げます。 -先に言及した型システムの変更とcontextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 +Scala は常に関数型プログラミングとオブジェクト指向プログラミングの間のフロンティアにあります。そして Scala 3 はその境界を両方に広げます。 +先に言及した型システムの変更と contextual abtstractions の再設計によって、関数型プログラミングを以前にも増して簡単に書けるようになりました。 同時に、次に掲げる新機能を使うと _オブジェクト指向設計_ をうまく構造化してベストプラクティスを実践しやすくなります。 - **Pass it on**. Traits は class のように 引数をとれるようになりました。詳しくは [parameters][oo-trait-parameters] をご覧ください。 これによってtraitはソフトウェアをモジュールに分解するツールとしてよりいっそうパワフルになりました。 - **Plan for extension**. 継承を意図していないクラスが継承されてしまうことはオブジェクト指向設計において長年の問題でした。この問題に対処するため Scala 3 では [open classes][oo-open]の概念を導入することで _明示的に_ クラスを継承可能であるとしめすようライブラリ作者に要求するようにしました。 - **Hide implementation details**. ふるまいを実装した Utility traits は推論される型に含まれるべきでない場合があります。Scala 3 ではそのようなtraitsに [transparent][oo-transparent] とマークすることで継承をユーザーに公開しないようにすることができます。 -- **Composition over inheritance**. このフレーズはしばしば引用されますが、実装するのは面倒です。 しかしScala 3 の [export clauses][oo-export]を使えば楽になります。imports と対称的に、 export clauses はオブジェクトの特定のメンバーへアクセスするためのエイリアスを定義します。 -- **No more NPEs**. Scala 3 はかつてないほどnull安全です。: [explicit null][oo-explicit-null] によって `null` を型ヒエラルキーの外側に追い出しました。これによってエラーを静的にキャッチしやすくなります。また、 [safe initialization][oo-safe-init]の追加的なチェックで初期化されていないオブジェクトへのアクセスを検知できます。 +- **Composition over inheritance**. このフレーズはしばしば引用されますが、実装するのは面倒です。 しかし Scala 3 の [export clauses][oo-export]を使えば楽になります。imports と対称的に、 export clauses はオブジェクトの特定のメンバーへアクセスするためのエイリアスを定義します。 +- **No more NPEs**. Scala 3 はかつてないほど null 安全です。: [explicit null][oo-explicit-null] によって `null` を型ヒエラルキーの外側に追い出しました。これによってエラーを静的にキャッチしやすくなります。また、 [safe initialization][oo-safe-init]の追加的なチェックで初期化されていないオブジェクトへのアクセスを検知できます。 ### Batteries Included: メタプログラミング Scala 2 のマクロはあくまで実験的な機能という位置づけでしたが、Scala 3 ではメタプログラミングに役立つ強力なツールが標準ライブラリに入っています。 From c110b6b0bda562299a646e5c5d207c2a948af873 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 12:55:38 +0900 Subject: [PATCH 24/28] correct and refine writings --- _ja/scala3/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index a16acc4eeb..3700c172f8 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -16,7 +16,7 @@ _Scastie_ は Scala のコードがどのように動作するか試せるオン ## Scala をインストールする Scala をインストールするということはつまり、さまざまなコマンドラインツールやビルドツールをインストールするということです。 -Scalaのインストーラツールの"Coursier"を使うのがおすすめです。Coursier を使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 +Scala のインストーラツールの"Coursier"を使うのがおすすめです。Coursier を使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 ### Scala インストーラ を使う (推奨) @@ -103,7 +103,7 @@ sbt の詳しいドキュメントは [Scala Book](/scala3/book/scala-tools.html {% comment %} ### With IntelliJ IDEA -You can skip the rest of this page and go directly to [Building a Scala Project with IntelliJ and sbt](/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html) +これ以降は読み飛ばしてそのまま [Building a Scala Project with IntelliJ and sbt](/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html)を見てもいいです。 {% endcomment %} From 6375b2b32a57f80d1b4987aaf672ca8a5339c520 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Tue, 2 Mar 2021 12:59:44 +0900 Subject: [PATCH 25/28] update scala 3 version --- _ja/scala3/getting-started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index 3700c172f8..e83b028fc6 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -197,11 +197,11 @@ cs launch scala3-repl #### Scala 3 を手動でインストールする(オプショナル) -Scala 3 はまだリリースされていないので Github から最新のソース(2021/02時点で scala3-3.0.0-M3 )を直接ダウンロードしてpathを通してください。 +Scala 3 はまだリリースされていないので Github から最新のソース(2021/03時点で scala3-3.0.0-RC1 )を直接ダウンロードしてpathを通してください。 ```shell -wget https://github.com/lampepfl/dotty/releases/download/3.0.0-M3/scala3-3.0.0-M3.tar.gz -tar -zxvf scala3-3.0.0-M3.tar.gz +wget https://github.com/lampepfl/dotty/releases/download/3.0.0-RC1/scala3-3.0.0-RC1.tar.gz +tar -zxvf scala3-3.0.0-RC1.tar.gz ``` From b00e31d6df71e4666481ee0a87b24d0d5f44e6f2 Mon Sep 17 00:00:00 2001 From: Yoichiro ITO <39330037+ItoYo16u@users.noreply.github.com> Date: Tue, 2 Mar 2021 13:00:36 +0900 Subject: [PATCH 26/28] add space before and after English Co-authored-by: TATSUNO Yasuhiro --- _ja/scala3/new-in-scala3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 9af3a52e07..4fd6080531 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -4,7 +4,7 @@ title: New in Scala 3 scala3: true --- -Scala 3 はScala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 +Scala 3 は Scala 2 から大幅な改善が行われ、さまざまな新機能が追加されています。 ここでは Scala 3 の特に重要な変更点を概観します。 より詳しく知りたい方は以下の参考リンクをご覧ください。 From a386d60e24b4643430eeaeb39c1a1bf747df06e1 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Wed, 3 Mar 2021 10:52:06 +0900 Subject: [PATCH 27/28] remove inconsistency --- _ja/scala3/new-in-scala3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_ja/scala3/new-in-scala3.md b/_ja/scala3/new-in-scala3.md index 9af3a52e07..92c60df9e2 100644 --- a/_ja/scala3/new-in-scala3.md +++ b/_ja/scala3/new-in-scala3.md @@ -53,7 +53,7 @@ Scala 3 ではひとつの強力な機能として`implicit`を提供するの - **Dependent function types**. Scala 2 ではすでに引数の型に応じて返り値の型を変化させることができました。Scala 3 ではこのパターンをさらに抽象化することができ、[dependent function types][types-dependent]を表現することができます。 つまり `type F = (e: Entry) => e.Key` というふうに、返り値の型が引数によって変化するように書けます。 -- **Polymorphic function types**. dependent function types のように Scala 2 では型パラメタを受け取るメソッドを定義することができました。 しかし、開発者はこれらのメソッドをさらに抽象化することはできませんでした。Scala 3 では、`[A] => List[A] => List[A]` といった書き方をする[polymorphic function types][types-polymorphic] を使って引数に加えて型引数をとるような関数を抽象化できます。 +- **Polymorphic function types**. dependent function types のように Scala 2 では型パラメータを受け取るメソッドを定義することができました。 しかし、開発者はこれらのメソッドをさらに抽象化することはできませんでした。Scala 3 では、`[A] => List[A] => List[A]` といった書き方をする[polymorphic function types][types-polymorphic] を使って引数に加えて型引数をとるような関数を抽象化できます。 - **Type lambdas**. Scala 2 で[compiler plugin](https://github.com/typelevel/kind-projector)を使わないと表現できなかった型ラムダは Scala 3 では第一級の機能としてサポートされています。: 型ラムダは補助的な型を定義しないでも高階型引数として引数を受け渡せる型レベルの関数です。 - **Match types**. 暗黙の型解決を使って型レベル演算をエンコードする代わりに、Scala 3 では型のパターンマッチング[matching on types][types-match]をサポートしています。 型レベルの演算を型チェックと統合することでエラーメッセージをわかりやすく改善し、また複雑なエンコーディングをしなくていいようにしています。 From 3980ee9a09d5eb47f730560038e4e2f395cb5899 Mon Sep 17 00:00:00 2001 From: ItoYo16u Date: Sat, 13 Mar 2021 16:05:17 +0900 Subject: [PATCH 28/28] rewrite in plain form --- _ja/cheatsheets/index.md | 2 +- _ja/scala3/contribute-to-docs.md | 26 ++-- _ja/scala3/getting-started.md | 135 ++++++++++---------- _ja/scala3/new-in-scala3.md | 90 ++++++------- _ja/tour/traits.md | 2 +- _ja/tutorials/scala-for-java-programmers.md | 2 +- 6 files changed, 129 insertions(+), 128 deletions(-) diff --git a/_ja/cheatsheets/index.md b/_ja/cheatsheets/index.md index f34596a8cf..9038a75a42 100644 --- a/_ja/cheatsheets/index.md +++ b/_ja/cheatsheets/index.md @@ -5,7 +5,7 @@ title: Scala Cheatsheet partof: cheatsheet by: Kenji Ohtsuka -about: Thanks to Brendan O'Connor. このチートシートは Scala 構文 のクイックリファレンスとして作成されました。 Licensed by Brendan O'Connor under a CC-BY-SA 3.0 license. +about: Thanks to Brendan O'Connor. このチートシートは Scala 構文 のクイックリファレンスとして作成された。 Licensed by Brendan O'Connor under a CC-BY-SA 3.0 license. language: ja --- diff --git a/_ja/scala3/contribute-to-docs.md b/_ja/scala3/contribute-to-docs.md index 8287ce8123..01ca57a37f 100644 --- a/_ja/scala3/contribute-to-docs.md +++ b/_ja/scala3/contribute-to-docs.md @@ -7,40 +7,40 @@ scala3: true --- ## 概要 -Scala 3 の高品質なドキュメンテーションを作るためのいくつかの試みが目下進行中です。 -特に次のようなドキュメントがあります。 +Scala 3 の高品質なドキュメンテーションを作るためのいくつかの試みが目下進行中である。 +特に次のようなドキュメントがある。 - Scala 3 book - Macros tutorial - Migration guide - Scala 3 language reference -ドキュメンテーションの種類に関わらずコミュニティからのコントリビューションを歓迎します。 +ドキュメンテーションの種類に関わらずコミュニティからのコントリビューションを歓迎する。 ### コントリビューションの仕方 -一般に、 多くの異なった方法で私たちを支援することができます : -- **ドキュメントのどこかで混乱するところがある** Issue をたててください。 -- **最新の状態を反映していないドキュメントがある** Issue をたてるか、PR をつくってください。 -- **タイポの修正やその他ちょっとした文章の改善** PR をつくってください。 -- **なにかを新しく追加したり大きな変更を加えたい** 議論できるよう Issue をたててください。 +さまざまな方法で私たちを支援することができる : +- **ドキュメントのどこかで混乱するところがある** Issue をたてる。 +- **最新の状態を反映していないドキュメントがある** Issue をたてるか、PR をつくる。 +- **タイポの修正やその他ちょっとした文章の改善** PR をつくる。 +- **なにかを新しく追加したり大きな変更を加えたい** 議論できるよう Issue をたてる。 -通常、ドキュメントプロジェクトのそれぞれには編集・改善用のリンクが含まれています。(このドキュメントについても同様で、目次の領域にあります。) また、コントリビューションをはじめるために必要な情報は以下に記載されています。 +通常、ドキュメントプロジェクトのそれぞれには編集・改善用のリンクが含まれている。(このドキュメントについても同様で、目次の領域にある。) また、コントリビューションをはじめるために必要な情報は以下に記載されている。 ## Scala 3 Book -[Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いています。 この本は Scala 3 のすべての重要な機能の概説書です。これから Scala を使いはじめる読者を対象にしています。 +[Scala 3 Book][scala3-book] は Alvin Alexander 氏 が書いている。 この本は Scala 3 のすべての重要な機能の概説書である。これから Scala を使いはじめる読者を対象にしている。 - [Sources](https://github.com/scala/docs.scala-lang/tree/master/_overviews/scala3-book) - [Issues](https://github.com/scala/docs.scala-lang/issues) ## Macros Tutorial -[Macros Tutorial](/scala3/guides/macros)は Nicolas Stucki 氏 が書いています。この本では Scala 3 のマクロとそのベストプラクティスについて詳しく説明しています。 +[Macros Tutorial](/scala3/guides/macros)は Nicolas Stucki 氏 が書いている。この本では Scala 3 のマクロとそのベストプラクティスについて詳しく説明している。 - [Sources](https://github.com/scala/docs.scala-lang/tree/master/_overviews/scala3-macros) - [Issues](https://github.com/scala/docs.scala-lang/issues) ## Migration Guide -[Scala 3 Migration Guide](https://scalacenter.github.io/scala-3-migration-guide/) は Scala 2 と Scala 3 の互換性、移行に役立つツールの紹介、そして詳しい移行のガイドを含んだ包括的なドキュメントです。 +[Scala 3 Migration Guide](https://scalacenter.github.io/scala-3-migration-guide/) は Scala 2 と Scala 3 の互換性、移行に役立つツールの紹介、そして詳しい移行のガイドを含んだ包括的なドキュメントである。 - [Contribution Overview](https://scalacenter.github.io/scala-3-migration-guide/docs/contributing.html) - [Source](https://github.com/scalacenter/scala-3-migration-guide) @@ -48,7 +48,7 @@ Scala 3 の高品質なドキュメンテーションを作るためのいくつ ## Scala 3 Language Reference -The [Dotty reference](https://dotty.epfl.ch/docs/reference/overview.html) は Scala 3 になる予定です。これにはさまざまな言語仕様に関する公式のプレゼンテーションや技術的情報が含まれています。 +The [Dotty reference](https://dotty.epfl.ch/docs/reference/overview.html) は Scala 3 になる予定である。これにはさまざまな言語仕様に関する公式のプレゼンテーションや技術的情報が含まれている。 - [Sources](https://github.com/lampepfl/dotty/tree/master/docs/docs/reference) - [Issues](https://github.com/lampepfl/dotty/issues) diff --git a/_ja/scala3/getting-started.md b/_ja/scala3/getting-started.md index e83b028fc6..4790cb78ca 100644 --- a/_ja/scala3/getting-started.md +++ b/_ja/scala3/getting-started.md @@ -9,83 +9,84 @@ language: ja ## Try Scala without installing anything -いますぐ Scala 3 を試してみたいなら ブラウザ上で動作する“Scastie” を使ってみてください。 -_Scastie_ は Scala のコードがどのように動作するか試せるオンラインのプレイグラウンドです。全ての Scala のコンパイラと公開されているライブラリを使うこともできます。 +いますぐ Scala 3 を試してみたいなら ブラウザ上で動作する“Scastie” を使ってみよう。 +_Scastie_ は Scala のコードがどのように動作するか試せるオンラインのプレイグラウンドである。全ての Scala のコンパイラと公開されているライブラリを使うこともできる。 ## Scala をインストールする -Scala をインストールするということはつまり、さまざまなコマンドラインツールやビルドツールをインストールするということです。 -Scala のインストーラツールの"Coursier"を使うのがおすすめです。Coursier を使えばインストールが必要なものすべてを自動でインストールできます。 もちろん、手動でそれぞれのツールをインストールすることもできます。最低限 Java、sbt があれば Scala のコードを書き始められます。 +Scala をインストールするということはつまり、さまざまなコマンドラインツールやビルドツールをインストールするということである。 +Scala のインストーラツール "Coursier" を使うのが推奨されている。Coursier を使えばインストールが必要なものすべてを自動でインストールできる。 もちろん、手動でそれぞれのツールをインストールすることもできる。最低限 Java、sbt があれば Scala のコードを書き始められる。 ### Scala インストーラ を使う (推奨) -Scala インストーラは [Coursier](https://get-coursier.io/docs/cli-overview)という名前のツールで、メインコマンドは`cs`です。 -Coursier はシステムに JVM と Scala のツールがインストールされているかどうか確認します。 +Scala インストーラは [Coursier](https://get-coursier.io/docs/cli-overview)という名前のツールで、メインコマンドは`cs`である。 +Coursier はシステムに JVM と Scala のツールがインストールされているかどうか確認する。 次の手順に従って Coursier をインストールしてください。
-

cs launcherをインストールする手順に従ってインストールし、次のコマンドを実行してください。:

+

cs launcherをインストールする手順に従ってインストールし、次のコマンドを実行する。:

$ ./cs setup

-JVM の管理に加えて、 `cs setup` コマンドは次のような便利なコマンドラインツールもインストールします。: +JVM の管理に加えて、 `cs setup` コマンドは次のような便利なコマンドラインツールもインストールする。: - JDK - ビルドツール [sbt](https://www.scala-sbt.org) と [mill](https://www.lihaoyi.com/mill) - [Ammonite](https://ammonite.io), 高機能 REPL - [scalafmt](https://scalameta.org/scalafmt), the Scala formatter -- [Coursier CLI](https://get-coursier.io/docs/cli-overview), Scala で書かれたアプリケーションをインストールできます -- (**Scala 2.13** 向けの `scala` コマンドと `scalac` コマンド。Scala 3 用ではありません。) +- [Coursier CLI](https://get-coursier.io/docs/cli-overview), Scala で書かれたアプリケーションをインストールできる +- (**Scala 2.13** 向けの `scala` コマンドと `scalac` コマンド。Scala 3 用ではない。) -`cs setup`を実行したら以下のコマンドで Java, Scala がインストールされているかどうか確認してください。 + +`cs setup`を実行したら以下のコマンドで Java, Scala がインストールされているかどうか確認する。 ```shell java --version scala --version ``` -詳しくは、 [coursier-cli documentation](https://get-coursier.io/docs/cli-overview)を読んでください。 +詳しくは、 [coursier-cli documentation](https://get-coursier.io/docs/cli-overview)を読もう。 ### ... または、手動でインストールする -Scala プロジェクトをコンパイル、実行、テストやパッケージングするには次の二つのツールだけで十分です。Java 8 または 11、そして sbt です。 +Scala プロジェクトをコンパイル、実行、テストやパッケージングするには次の二つのツールだけで十分である。Java 8 または 11、そして sbt である。 これらのツールを手動でインストールするには、以下の手順に従ってください。 -1. Java を [Oracle Java 8](https://www.oracle.com/java/technologies/javase-jdk8-downloads.html), [Oracle Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html), か [AdoptOpenJDK 8/11](https://adoptopenjdk.net/)からダウンロードしてください。 Scala/Java の互換性の詳細については [JDK Compatibility](/overviews/jdk-compatibility/overview.html) を参照してください。 -2. [sbt](https://www.scala-sbt.org/download.html) をインストールしてください。 +1. Java を [Oracle Java 8](https://www.oracle.com/java/technologies/javase-jdk8-downloads.html), [Oracle Java 11](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html), か [AdoptOpenJDK 8/11](https://adoptopenjdk.net/)からダウンロードする。 Scala/Java の互換性の詳細については [JDK Compatibility](/overviews/jdk-compatibility/overview.html) を参照せよ。 +2. [sbt](https://www.scala-sbt.org/download.html) をインストールする。 ## sbtで “Hello, world” プロジェクトを作成する -Scala 3 をインストールする前に、Scala を使ったことがない開発者に向けて sbt を使ってプロジェクトを作成、実行する方法について解説します。 +Scala 3 をインストールする前に、Scala を使ったことがない開発者に向けて sbt を使ってプロジェクトを作成、実行する方法について解説する。 -もし sbt でプロジェクトを作成する方法を既に知っているなら 「Scala 3 のインストール」 の章まで読み飛ばしてください。 +もし sbt でプロジェクトを作成する方法を既に知っているなら 「Scala 3 のインストール」 の章まで読み飛ばしていい。 -コマンドライン、IDE のどちらからでも sbt プロジェクトを作成できます。 +コマンドライン、IDE のどちらからでも sbt プロジェクトを作成できる。 -もし慣れているならコマンドラインツールを使うアプローチを推奨します。 +もし慣れているならコマンドラインツールを使うアプローチを推奨する。 ### コマンドラインツールを使う -sbt は Scala のビルドツールです。 -sbt を使って Scala のコードをコンパイル、実行やテストできます。 +sbt は Scala のビルドツールである。 +sbt を使って Scala のコードをコンパイル、実行やテストできる。 -(ライブラリを公開したり他の様々なタスクを実行することもできます。) +(ライブラリを公開したり他の様々なタスクを実行することもできる。) sbt で新しくプロジェクトを作成するには次の手順に従ってください。: -1. `cd` コマンドで新しいディレクトリに移動してください。 -1. `sbt new scala/hello-world.g8` コマンドを実行してください。 -このコマンドを実行すると ['hello-world' template][template-url] を GitHub から pull します。 -また、無視してよい _target_ フォルダを作成します。 -1. ターミナルでアプリケーション名の入力を促されたら `hello-world` と入力してください。 - "hello-world"と言う名前のプロジェクトが作成されます。 -1. 次のようなファイル、ディレクトリが作成されるはずです: +1. `cd` コマンドで新しいディレクトリに移動する。 +1. `sbt new scala/hello-world.g8` コマンドを実行する。 +このコマンドを実行すると ['hello-world' template][template-url] を GitHub から pull する。 +また、無視してよい _target_ フォルダを作成する。 +1. ターミナルでアプリケーション名の入力を促されたら `hello-world` と入力する。 + "hello-world"と言う名前のプロジェクトが作成される。 +1. 次のようなファイル、ディレクトリが作成される: ``` hello-world/ @@ -95,96 +96,96 @@ hello-world/ Main.scala (プログラムのエントリーポイントです。) build.sbt (sbt の ビルド定義ファイルです。) ``` -今のところ `src/main/scala` にある `Main.scala` しか必要ありません。 +今のところ `src/main/scala` にある `Main.scala` だけ必要である。 -sbt の詳しいドキュメントは [Scala Book](/scala3/book/scala-tools.html) と sbt 公式 [documentation](https://www.scala-sbt.org/1.x/docs/index.html) にあります。 +sbt の詳しいドキュメントは [Scala Book](/scala3/book/scala-tools.html) と sbt 公式 [documentation](https://www.scala-sbt.org/1.x/docs/index.html) にある。 {% comment %} ### With IntelliJ IDEA -これ以降は読み飛ばしてそのまま [Building a Scala Project with IntelliJ and sbt](/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html)を見てもいいです。 +これ以降は読み飛ばしてそのまま [Building a Scala Project with IntelliJ and sbt](/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html)を見ても問題ない。 {% endcomment %} ## “Hello, world” プロジェクトを開く -IDE を使ってプロジェクトを開きます。 -最も人気なエディタは IntelliJ IDEA と VS Code です。 -どちらも 高度な IDE 機能を提供しています。しかし、 [その他のエディタ](https://scalameta.org/metals/docs/editors/overview.html)を使うこともできます。 +IDE を使ってプロジェクトを開く。 +最も人気なエディタは IntelliJ IDEA と VS Code である。 +どちらも 高度な IDE 機能を提供している。しかし、 [その他のエディタ](https://scalameta.org/metals/docs/editors/overview.html)を使うこともできる。 ### IntelliJ IDEA を利用する -1. [IntelliJ Community Edition](https://www.jetbrains.com/idea/download/) をダウンロード、インストールしてください。 -1. リンク先の手順に従って Scala プラグインをインストールしてください。 [the instructions on how to install IntelliJ plugins](https://www.jetbrains.com/help/idea/managing-plugins.html) -1. _build.sbt_ ファイルを開いて、 _Open as a project_ を選択してください。 +1. [IntelliJ Community Edition](https://www.jetbrains.com/idea/download/) をダウンロード、インストールする。 +1. リンク先の手順に従って Scala プラグインをインストールする。 [the instructions on how to install IntelliJ plugins](https://www.jetbrains.com/help/idea/managing-plugins.html) +1. _build.sbt_ ファイルを開いて、 _Open as a project_ を選択する。 ### VS Code と Metals を利用する -1. [VS Code](https://code.visualstudio.com/Download) をダウンロードしてください。 -1. [Marketplace](https://marketplace.visualstudio.com/items?itemName=scalameta.metals) から 拡張機能 Metals をインストールしてください。 -1. 次に、_build.sbt_ ファイルが置いてあるディレクトリを開いてください。ダイアログが表示されたら _Import build_ をおしてください。 +1. [VS Code](https://code.visualstudio.com/Download) をダウンロードする。 +1. [Marketplace](https://marketplace.visualstudio.com/items?itemName=scalameta.metals) から 拡張機能 Metals をインストールする。 +1. 次に、_build.sbt_ ファイルが置いてあるディレクトリを開いてください。ダイアログが表示されたら _Import build_ をクリックする。 ->[Metals](https://scalameta.org/metals) は Scala の lauguage server です。Metals は Lauguage Server Protocol を使ってVS Code やその他のエディタ、たとえば[Atom, Sublime Text, and more](https://scalameta.org/metals/docs/editors/overview.html)、で Scala を書くための補助機能を提供します。 -(Metals の仕組みについて詳しく知りたい方は、以下のリンクをご覧ください。 [“Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals”](https://www.scala-lang.org/2019/04/16/metals.html).) +>[Metals](https://scalameta.org/metals) は Scala の lauguage server である。Metals は Lauguage Server Protocol を使ってVS Code やその他のエディタ、たとえば[Atom, Sublime Text, and more](https://scalameta.org/metals/docs/editors/overview.html)、で Scala を書くための補助機能を提供している。 +(Metals の仕組みについて詳しく知りたい方は、以下のリンクを参照。 [“Write Scala in VS Code, Vim, Emacs, Atom and Sublime Text with Metals”](https://www.scala-lang.org/2019/04/16/metals.html).) ### ソースコードを見る -以下の2つのファイルをIDEで開いてください: +以下の2つのファイルをIDEで開く: - _build.sbt_ - _src/main/scala/Main.scala_ -次のステップでプロジェクトを起動したとき、_build.sbt_ に書かれた設定が _src/main/scala/Main.scala_ を実行するために使われます。 +次のステップでプロジェクトを起動したとき、_build.sbt_ に書かれた設定が _src/main/scala/Main.scala_ を実行するために使われる。 ## “Hello, world” プロジェクトを実行する -IDEを使ってコードを書くのに特に抵抗がないなら、 _Main.scala_ に書かれたコードをIDEから実行してください。 +IDEを使ってコードを書くのに特に抵抗がないなら、 _Main.scala_ に書かれたコードをIDEから実行しよう。 -そうでないなら、次の手順でターミナルからアプリケーションを実行することもできます。 +そうでないなら、次の手順でターミナルからアプリケーションを実行することもできる。 -1. `cd` コマンドで _hello-world_ に移動してください。 -1. `sbt` コマンドを実行してください。sbt console が開きます。 -1. `~run` と入力してください。 - `~` は オプショナルな接頭辞で、これを付けるとファイルを保存するたびに sbt がそのコマンドを実行するので 編集/実行/デバッグのサイクルを高速に回せます。sbt は自身が使うために `target` ディレクトリを生成します。 開発者はこのディレクトリを無視してかまいません。 +1. `cd` コマンドで _hello-world_ に移動する。 +1. `sbt` コマンドを実行してください。sbt console が開く。 +1. `~run` と入力。 + `~` は オプショナルな接頭辞で、これを付けるとファイルを保存するたびに sbt がそのコマンドを実行するので 編集/実行/デバッグのサイクルを高速に回せる。sbt は自身が使うために `target` ディレクトリを生成する。 開発者はこのディレクトリを無視してよい。 -このプロジェクトを試し終わったら、エンターキーを押して `run` コマンドの実行を停止してください。 +このプロジェクトを試し終えたら、エンターキーを押し `run` コマンドの実行を停止しよう。 -`exit`と入力するか `[Ctrl][d]` ショートカットをおすと sbt から出てコマンドプロンプトに戻ります。 +`exit`と入力するか `[Ctrl][d]` ショートカットをおすと sbt から出てコマンドプロンプトに戻る。 ### Scala 3 のインストール Scala 3 を始めるには以下のような方法があります。詳しくは[こちら](https://dotty.epfl.ch/)も参照してください。 -1. sbt をインストールし sbt で`sbt new lampepfl/dotty.g8` を実行して Scala 3 プロジェクトを始めることができます。 -1. 先に説明した通り、`cs setup` コマンドを使って Java、Scala(2.**)の環境をセットアップすることができます。 また、`cs install scala3-compiler`、`cs install scala3-repl`コマンドでそれぞれ Scala 3 のコンパイラ、 Scala 3 の REPL をインストールできます。 -1. Scala 3 のソースを[ここ](https://github.com/lampepfl/dotty/releases)から手動でインストールすることができます。 +1. sbt をインストールし sbt で`sbt new lampepfl/dotty.g8` を実行して Scala 3 プロジェクトを始めることができる。 +1. 先に説明した通り、`cs setup` コマンドを使って Java、Scala(2.**)の環境をセットアップすることができる。 また、`cs install scala3-compiler`、`cs install scala3-repl`コマンドでそれぞれ Scala 3 のコンパイラ、 Scala 3 の REPL をインストールできる。 +1. Scala 3 のソースを[ここ](https://github.com/lampepfl/dotty/releases)から手動でインストールすることができる。 #### sbt を使って Scala 3 プロジェクトをはじめる(オプショナル) -上の手順で`cs setup` をすでに実行しているなら `sbt`コマンドが使えるようになっているはずです。 以下のコマンドを実行することで Scala 3 のテンプレートプロジェクトを作れます。 +上の手順で`cs setup` をすでに実行しているなら `sbt`コマンドが使えるようになっているはずである。 以下のコマンドを実行することで Scala 3 のテンプレートプロジェクトを作れる。 ```shell sbt new lampepfl/dotty.g8 ``` -Scala 2 とクロスコンパイル可能なプロジェクトテンプレートを利用する場合は以下のコマンドを実行してください。 +Scala 2 とクロスコンパイル可能なプロジェクトテンプレートを利用する場合は以下のコマンドを実行しよう。 ```shell sbt new lampepfl/dotty-cross.g8 ``` #### Coursierを使ってScala 3 用のコンパイラと REPL をインストールする(オプショナル) -以下では Scala 3 のコンパイラ、REPL と Scala 3 をインストールする手順を説明します。 +以下では Scala 3 のコンパイラ、REPL と Scala 3 をインストールする手順を説明する。 ```shell cs install scala3-compiler cs install scala3-repl ``` -インストールしたコンパイラ、REPL は`cs launch ` で実行できます。 +インストールしたコンパイラ、REPL は`cs launch ` で実行できる。 ```shell cs launch scala3-compiler -- Hello.scala ``` @@ -197,7 +198,7 @@ cs launch scala3-repl #### Scala 3 を手動でインストールする(オプショナル) -Scala 3 はまだリリースされていないので Github から最新のソース(2021/03時点で scala3-3.0.0-RC1 )を直接ダウンロードしてpathを通してください。 +Scala 3 はまだリリースされていないので Github から最新のソース(2021/03時点で scala3-3.0.0-RC1 )を直接ダウンロードしてpathを通す。 ```shell wget https://github.com/lampepfl/dotty/releases/download/3.0.0-RC1/scala3-3.0.0-RC1.tar.gz @@ -210,15 +211,15 @@ tar -zxvf scala3-3.0.0-RC1.tar.gz ## 次のステップ -Scala 3 を使った 最初の “Hello, world” プロジェクトを作れたので, 次のステップに進んでみましょう。 +Scala 3 を使った 最初の “Hello world” プロジェクトを作れたので、 次のステップに進む。 -以下の記事をチェックしてみてください: +以下の記事をチェックしよう: -- [The Scala 3 Book](/scala3/book/introduction.html), Scala の主要な機能の導入となる一連の短いレッスンが用意されています。 -- [The migration guide](https://scalacenter.github.io/scala-3-migration-guide/) 既にある Scala 2 で書かれたコードベースを Scala 3 に移行する際に役立つ情報がまとめてあります。 +- [The Scala 3 Book](/scala3/book/introduction.html), Scala の主要な機能の導入となる一連の短いレッスンが用意されている。 +- [The migration guide](https://scalacenter.github.io/scala-3-migration-guide/) 既にある Scala 2 で書かれたコードベースを Scala 3 に移行する際に役立つ情報がまとめてある。 -他の Scala ユーザーと交流したいなら、いくつかのメーリングリストやリアルタイムチャットルームがあります。 -これらのリソースのリストや助けを求める場所を探すには、[Scala community page](https://scala-lang.org/community/) をチェックしてみてください。 +他の Scala ユーザーと交流したいなら、いくつかのメーリングリストやリアルタイムチャットルームがある。 +これらのリソースのリストや助けを求める場所を探すには、[Scala community page](https://scala-lang.org/community/) をチェックしよう。