並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 47件

新着順 人気順

scala3の検索結果1 - 40 件 / 47件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

scala3に関するエントリは47件あります。 scalaプログラミング などが関連タグです。 人気エントリには 『あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記』などがあります。
  • あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2023の11日目です. 最近, 趣味でScala 3のコードをだいぶ書いていて, マクロの使い心地のよさに感心しました. 理論的な背景も含めて, 産業界で多く使われているプログラミング言語の中では筆者の知る限りぶっちぎりに優れたマクロを備えています. 他の言語にも見習ってほしいですね. たぶん見習おうとすると処理系を作り直す羽目になりますが. この記事ではScala 3のマクロのすごいところを例を使って紹介します. マクロの実践的な例 準備 実践的な例: NamedArray – 名前でアクセスできる配列 NamedArrayのマクロ実装 記述が明瞭 メタレベルのプログラムの扱い クォートとスプライスがある パターンマッチもある 生成コードに型がつく 多段階計算に基づいている クォートとスプライスの本当の意味 ネストしたスプライス ネ

      あらゆるプログラミング言語の最先端を行くScala 3のマクロ - 貳佰伍拾陸夜日記
    • Scala3と圏論とプログラミング

      最近、圏論とプログラミングという素晴らしい資料を拝読しました。圏論とプログラミング愛に溢れる資料で読んでいて目頭が熱くなりました。そうだよな・・・プログラマにも圏論いるよな・・・ ただ、自分にとって残念だったのは、資料で説明用に選択されたプログラミング言語が「Haskell」だったことです。もちろんHaskellは素晴らしい言語です。ただ、自分にとってHaskellは外国語なのでちょっと理解が難しいのです。そしてこの資料が「Scala」で書かれていたらと夢想せずにはいられなかったのです。 Scalaと言えば昨年末にScala3のリサーチコンパイラのDottyがFeature Completeを宣言しました^1。この宣言で新機能の追加は終了して、あとは2020年末のリリースに向けてひたすら品質を上げていく段階に突入しました。つまり、ようやく次世代のScalaが全貌を現したということです。 こ

        Scala3と圏論とプログラミング
      • Scala3でコードは爆速になる マルチステージプログラミングの考え方

        アジア最大級の国際Scalaカンファレンスである「ScalaMatsuri2020」がオンラインで開催されました。そこでビジョナル・インキュベーションの鈴木氏が、Scala3(Dotty)で可能になったマルチステージプログラミング(MSP:Multi-stage Programming)について話しました。前半ではマルチステージプログラミングの概念やその基本的なプログラムの書き方について話しました。 マルチステージプログラミングのいいところ 鈴木健一氏(以下、鈴木):鈴木健一と申します。よろしくお願いします。本日はマルチステージプログラミングの話をします。 Dotty(※Scala3)でメタプログラミングの機能が強化されてマルチステージプログラミングができるようになったので、せっかくなのでそのお話をしまして、後半はTagless-finalのご紹介をします。最後にマルチステージプログラミン

          Scala3でコードは爆速になる マルチステージプログラミングの考え方
        • なぜ Scala 3 で変わったのか / Why things are changed in Scala3?

          Scala 3で変わった機能の背景事情と、現段階でわかっているマイグレーションの話中心です。 2020/1/31 (株)セプテーニ・オリジナル 社内勉強会 資料

            なぜ Scala 3 で変わったのか / Why things are changed in Scala3?
          • Scala 3 is here!🎉🎉🎉

            ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. After 8 years of work, 28,000 commits, 7,400 pull requests, 4,100 closed issues – Scala 3 is finally out. Since the first commit on December 6th 2012, more than a hundred people have contributed to the project. Today, Scala 3 incorporates the latest research in

              Scala 3 is here!🎉🎉🎉
            • コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記

              またか. またなのか. 何回目だ. ということで, ラムダ計算のインタプリタの実装としては4回目くらい*1, コンパイル時計算でやるものとしても3回目くらいになってしまうけど, ラムダ計算の処理系をまた書いてしまった. 今回の目的は, Scala 3にはmatch typesという機能があり, これだけでチューリング完全なのではないか, というのを検証するため. また, 文字列リテラル型を操作する型レベル関数が3.1.2-RC1にきていて, これを使えば構文解析器だって書ける. 経緯 過去の事例 関数と返り値 パターンマッチと再帰呼出し Scala 3の型レベル言語 match types リテラル型操作 ラムダ計算の実装 評価 印字 構文解析 型推論 (型検査) おわりに 経緯 もともとは, id:xuweiさんが文字列リテラル型でコンパイル時に動作する構文解析器を実装していたのが始まり

                コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
              • Scala 3 マクロ入門 · eed3si9n

                2021-09-06 / scala はじめに マクロは楽しくかつ強力なツールだが、使いすぎは害もある。責任を持って適度にマクロを楽しんでほしい。 マクロとは何だろうか? よくある説明はマクロはコードを入力として受け取り、コードを出力するプログラムだとされる。それ自体は正しいが、map {...} のような高階関数や名前渡しパラメータのように一見コードのブロックを渡して回っている機能に親しんでいる Scala プログラマには「コードを入力として受け取る」の意味が一見分かりづらいかもしれない。 以下は、僕が Scala 3 にも移植した Expecty という assersion マクロの用例だ: scala> import com.eed3si9n.expecty.Expecty.assert import com.eed3si9n.expecty.Expecty.assert scala

                • Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記

                  この記事はScala Advent Calendar 2023の12日目だ! Scala 3のマクロを書く上で役に立つ, メタれたTipsたちを紹介するぜ! 勢いに任せて書いていくからサンプルコードがちゃんと動かなかったらごめんな. 一応, Scala 3.3.1を想定しているぞ. マクロ 1. メソッドをマクロとして定義する 2. マクロの本体を実装する 3. マクロ実装の記法の意味を知る 4. マクロで生成されるコードの内容を確認する 5. 引数の式を評価せずに使う 6. 返り値の型をマクロの実行結果によって決める 7. マクロの返り値の型を制限する 8. マクロの返り値の型を書かない 9. マクロで計算された型をテストする 10. マクロで計算された型をScalaTestでテストする 式 11. 定数式の値を得る 12. 定数式でなければコンパイルエラーにする 13. 定数値の式を作

                    Scala 3のマクロTips 100連発 - 貳佰伍拾陸夜日記
                  • Introduction to Scala 3 - Opt Technologies Magazine

                    先日のScala Days 2019の基調講演などでも触れられた通り、いよいよDottyあらためScala 3のリリースが近づいて来ました。既にScala 3の仕様のかなりの部分は、Dottyとしてユーザが利用できる状態になっています。この記事では、Scala Daysでの講演スライドおよびDottyに関する各種資料を元に、Scala 3の新機能や変更点について紹介します。 あいさつ Scala 3について Dottyとは Scala 3の新機能 Top level definitions Creator applications Multiversal equalities Extension methods Enums Implicitの見直し Type classes # 2019年9月30日追記: Implicit conversions Implicit function typ

                      Introduction to Scala 3 - Opt Technologies Magazine
                    • ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ

                      こんにちは。エムスリーエンジニアリンググループでScalaとマミさんが好きな安江です。今回は私が所属している製薬企業向けプラットフォームチームのPlay製プロダクトのPlay/Scalaバージョンアップのお話です。当初Play2.8にバージョンアップしていたのですが、その最中にPlay2.9/Play3.0やScala LTSが出たりもしました。最終的にPlay3.0/Scala3.3にバージョンアップできて本番稼働できたサービスもあるので、そのバージョンアップの経緯をご紹介します。 Play2.8への道のり Play3.0へのバージョンアップ ハマり1:依存ライブラリがPlay2系に依存している ハマり2:ScalikeJDBCの依存関係 ハマり3:サーバーバックエンドの変更 ハマり4:sttpのバックエンドの変更 ハマり5:if式が値を返さない まとめ We are hiring !!

                        ハマったポイントたくさんあったけどPlay3.0/Scala3.3へバージョンアップできたよ - エムスリーテックブログ
                      • Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌

                        Scala 3におけるデータ指向プログラミング(以下DOP)について深掘りする。久々にScalaの話題を取り上げるが、これはScala Advent Calendar 2023の14日目の内容でもある。 早速だけど、DOPの基本原則は意外とシンプルだ。 コード(動作)をデータから切り離す データを汎用的なデータ構造で表現する データをイミュータブル(不変)として扱う データスキーマをデータ表現から切り離す イミュータブルなデータは採用することは多いと思うが、これをそのまま実践している人はどのくらいいるだろうか。Scalaではクラス中心の関数型プログラミングが主流だと思うし、私もそうしている。 DOPの詳細は下記の本(以下DOP本)を参照してほしい。 データ指向プログラミング 作者:Yehonathan Sharvit翔泳社Amazon ちなみに留意すべき点がある。DOP本とJavaのPro

                          Scala 3でデータ指向プログラミングは可能か - かとじゅんの技術日誌
                        • Scala 3.3.0から標準で使えるようになるfewerBraces記法のまとめ - Lambdaカクテル

                          先日、Scala CLI v1.0.0がついにリリースされた。これまではv0系列だったので、満を持しての正式版リリースだ。おめでとう! github.com いちおう説明しておくとScala CLIは総合的なScalaのコマンドラインツールで、以下のようなことができる: Uber JAR(単体で動作するJARファイル)の生成 GraalVMを使ったバイナリの生成 Scala Nativeを使ったバイナリの生成 REPL Scala Scriptの実行環境 このように多彩な機能を持つScala CLIは、現在のscalaコマンドを置換して将来的なscalaコマンドになることが決まっている。 さて、リリースノートによればScala CLIではv1.0.0からScala 3.3.0をデフォルトで利用することになった。Scala 3.3.0にはいくつもの修正や追加機能が含まれているが、今回はその中

                            Scala 3.3.0から標準で使えるようになるfewerBraces記法のまとめ - Lambdaカクテル
                          • Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル

                            Tagged Type というテクニックがある(TypeScript界隈などではBranded Typeと呼ばれているようだ)。実行時の型としては同じだが、型システム上はこれを区別して別物として扱い、混同できなくする仕組みを作るためのものだ。 AIくん!サムネイラスト作って!と頼んで作ってもらった画像 Tagged Type 単位の取り違えによる事故は後を絶たない。世の中には、キログラムとポンドを混同して飛行機があわや墜落しかけたり、メートルとヤードを混同して人工衛星がどっかに行ったりしている。尊い人命や国民の血税と比べるといささか霞むかもしれないが、ユーザIDとペイロードを間違えて送信したり、金額と口座番号を取り違えて送金したり、秘密鍵と公開鍵を間違えて表示したりしてしまえば、プログラマが大変な苦労をするか、会社そのものが傾くだろう。 しかしながら、データとしてはどちらも同じDouble

                              Tagged Type(Branded Type)を使って飛行機の不時着や人工衛星紛失を防ごう / Scala 3ではTagged Typeを簡単に作れる - Lambdaカクテル
                            • Scala 3に備える社内勉強会の取り組みについて - Chatwork Creator's Note

                              みなさん、こんにちは!Chatworkの原田 (@shinharad) です。 今回は、最近弊社で取り組んでいる Scala 3 の社内勉強会について、このような流れでご紹介したいと思います。 最初に Scala 3 の今の状況をざっと確認 Chatworkでは Scala 3 の社内勉強会を継続的に開催している 勉強会で使っている資料、情報源のご紹介 勉強会でやったことをいくつかご紹介 Scala 3 の状況 まずは、Scala 3 の今の状況について軽く確認しておきましょう。 待ちに待った Scala 3 は、この記事を執筆している時点での最新版が Scala 3.0.0-RC3 で、大きな問題がなければこの5月中にも安定版がリリースされる予定です。 Scala 3 は、Scala 2 で不便だった機能や、煩雑で分かりづらかった機能が大幅に見直されました。 具体的には、代数的データ型(

                                Scala 3に備える社内勉強会の取り組みについて - Chatwork Creator's Note
                              • Scala 2 Roadmap Update: the Road to Scala 3

                                ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Together with the Scala 3 team at EPFL (aka the Dotty team), led by Martin Odersky, we have decided that, rather than developing Scala 2.14, our efforts should go to Scala 3 instead. While we’re very excited to shift our focus to Scala 3, we will continue to ma

                                  Scala 2 Roadmap Update: the Road to Scala 3
                                • 2020年11月現在のScala 3(Dotty)とScala 2のコンパイル速度比較 - xuwei-k's blog

                                  最初に結論 Scala 2.13.3 と 3.0.0-M2-bin-20201031-1ab76c1-NIGHTLY をscalaz最新版でベンチマークしたところ、 Scala 2.13.3は平均約57秒、Scala 3の最新版は平均約31秒で 約45%短縮!!! めでたいなぁ。 他の条件で計測した場合にどうなるのかわからないが、このままの速度を維持して欲しい。 以下詳細な条件や結果記載。 条件 scalazの最新版masterで、JVM側のmain側のみ(つまりtest除く。除いたのは、test含めると、よりコード量に差が出てしまうなどの理由) (数時間前に7.4.0-M4リリースしたので、実質それ) ベンチマークのために.travis.ymlだけ改変 https://github.com/xuwei-k/scalaz/commit/5956af9d2b280ef05b42eac9241

                                    2020年11月現在のScala 3(Dotty)とScala 2のコンパイル速度比較 - xuwei-k's blog
                                  • Scala3と圏論とプログラミング - Qiita

                                    最近、圏論とプログラミングという素晴らしい資料を拝読しました。圏論とプログラミング愛に溢れる資料で読んでいて目頭が熱くなりました。そうだよな・・・プログラマにも圏論いるよな・・・ ただ、自分にとって残念だったのは、資料で説明用に選択されたプログラミング言語が「Haskell」だったことです。もちろんHaskellは素晴らしい言語です。ただ、自分にとってHaskellは外国語なのでちょっと理解が難しいのです。なのでこの資料が「Scala」で書かれていたらと夢想せずにはいられなかったのです。 Scalaと言えば昨年末にScala3のリサーチコンパイラのDottyがFeature Completeを宣言しました1。この宣言で新機能の追加は終了して、あとは2020年末のリリースに向けてひたすら品質を上げていく段階に突入しました。つまり、ようやく次世代のScalaが全貌を現したということです。 ここ

                                      Scala3と圏論とプログラミング - Qiita
                                    • Scala Days 2019に行ってきました!Scala 3の最新情報を一挙公開!  - ZOZO TECH BLOG

                                      こんにちは!ZOZOテクノロジーズでバックエンド開発をしている@acjustplayです。 実は!この前!世界で一番大きいScalaカンファレンス Scala Days に行ってきました! 今年のScala Daysはスイスのローザンヌで、6/11〜13の3日間の開催でした。今まではアメリカとヨーロッパのどちらかでの開催が多かったですが、ちょうど今年がScala誕生15周年とScala Days開催10周年が重なり、特別な意味を持つ場所ーScalaとScala Daysの起点と言えるEPFL(スイス連邦工科大学ローザンヌ校)での開催になりました。 ちなみに今年はEPFLの50周年記念と私の初海外カンファレンス参加記念でもあり、もはや奇跡の宝箱としか言えないですね! あの有名な階段はEPFLの中にあります! 今回のScala Daysで私が一番注目していたのは、やはりScala 3の情報だっ

                                        Scala Days 2019に行ってきました!Scala 3の最新情報を一挙公開!  - ZOZO TECH BLOG
                                      • Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog

                                        Scala 3のmatch typeで何かのparserでも書くか?と思ったけど、コンパイル時にリテラルのStringを、型情報というか分解した場合の値情報?を、保ったままの分解が単純には出来そうにはないというか… あるいは一旦CharのHListにしたいんだけど、何か方法あるのかな— Kenji Yoshida (@xuwei_k) February 28, 2021 https://t.co/sNupBRy3rV type Substringが増えてるからいける…?— Kenji Yoshida (@xuwei_k) 2022年2月28日 できました。 parserなどに慣れてないので、とりあえず以下のクソ雑仕様?だけど、tokenにするのとparseとevalをなんとなくちゃんと分けたぞ! みんなScala 3のmatch typeで、任意の言語などのparserや評価機を書こう!!

                                          Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog
                                        • やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~

                                          既存のOSSの実装をなぞりながら簡単な Json パーサーを作る過程で、Scala 3 で追加/変更された文法・機能と関数型プログラミングを学べるように書いた本です. この本を読むと - Scala 3 の文法・追加/変更された機能がわかります - Scala の関数型 Json ライブラリのお気持ちがわかります - Scala の関数型のお気持ちがチョットわかります - Scala 3 のマクロがわかります 最初から順番にじっくり読むよりは全体を斜め読みして気になったところをしっかり読むといいかもしれません. - Maven へのリリース方法を追加: 2021/11/11 - Tweak: 2022/05/03

                                            やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~
                                          • Scala 3への道

                                            原文(投稿日:2021/03/03)へのリンク Scala 3には多くの変更が組み込まれており、Dottyに基づいている。新しいコンパイラは、Document Object Types (DOT) の内部データ構造を使用する。そのコードベースは現在の nsc コンパイラのほぼ半分のサイズであり、パフォーマンスの向上が約束されている。過去8年間の開発において、新しい型を含むDottyの新機能は、改善された enum 型の処理とメタプログラミングが含まれる。最初のリリース候補が利用可能になり、バージョン 3.0.0は2021年の初めから中頃にリリースされる予定だ。Scala 3は、Scala 2.13の下位バイナリ互換バージョンだ。 Webサイトに記載されているように、Scala 3の開発は3つの主要な目標に焦点を合わせている: Scalaの基盤を強化します。完全なプログラミング言語をDOT計

                                              Scala 3への道
                                            • A Tour of Scala 3

                                              Break Free with Managed Functional Programming: An Introduction to F#

                                                A Tour of Scala 3
                                              • Scala, Scala 2, Scala 3, Dotty, DOTの違い:処理系と言語を区別する - kmizuの日記

                                                はじめに 昨日、 ScalaMatsuri 参加者の一人から、タイトルの用語について、どういう使い分けをされているのかがわからない、といった質問があったので、処理系と言語の区別という観点も踏まえてちょっと整理しておきます。Eugene Yokotaさんから聞いた話としては、Scala 3という用語についてちょっと違う意味合いもあるようなのですが、その辺はツッコミ入れてくださるのではないかと期待しています。 Scala 2019年6月30日現在、普通にScalaといったらプロダクションで普通に使われているScalaの処理系(scalacなど)を指す場合と、その処理系が対象とする言語そのものを指す場合の用法の大まかに二通りがあります。この辺の使い分けは話の文脈に多分に依存していて、たとえば、「Scalaはコンパイルが遅い」「Scala 2.12でコンパイル速度が15%(詳細な数値は忘れました)

                                                  Scala, Scala 2, Scala 3, Dotty, DOTの違い:処理系と言語を区別する - kmizuの日記
                                                • 業務アプリケーションのScala 3アップデートを試してみた(前編) - FLINTERS Engineer's Blog

                                                  こんにちは。FLINTERSでTech Adviserをしています、OE(@OE_uia)です。 Scala 3.0.0が2021年5月14日にリリースされたことを受けて、いつアップデートするか検討中の方も多いかと思います。 実際、今FLINTERSではScala製プロダクトのScala 3.0.0へのバージョンアップを試みており、今回はその進捗をブログ記事化しました。 TL;DR Play Frameworkやplay-jsonを利用したプロジェクトでも、一部はScala 3.0.0にアップデート出来ることを確認しました。 Scala 3化を完遂するにはやや時期尚早な感があるものの、今回試してみてScala 2.13とScala 3の互換性に関する知見がたまり、OSSへの貢献もできました。 scala3-migrate-pluginで依存しているライブラリのScala 3対応状況について

                                                    業務アプリケーションのScala 3アップデートを試してみた(前編) - FLINTERS Engineer's Blog
                                                  • Scala 3 - A community powered release

                                                    ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Scala 3 - A community powered release After 8 years of research, experimenting, trying out, discussing, numerous contributions from academic & community collaborators, the Dotty project will finally graduate in fall 2020, by becoming Scala 3. This blog aims to

                                                      Scala 3 - A community powered release
                                                    • Scala 3は、開発者エクスペリエンスを向上させるために言語をオーバーホール

                                                      Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                                                        Scala 3は、開発者エクスペリエンスを向上させるために言語をオーバーホール
                                                      • Scala 3、Pythonのようにインデントベースの構文で書けるようになるってよ! - Qiita

                                                        ここ数年でインデントベースの記述は広くプログラマ界隈で受け入れられるようになってきました。プログラミング言語ではPythonの成功が大きく、ドキュメントではmarkdownとyamlが広く普及しています。そしてScala 3でもとうとうその波に乗ろうという動きが見えてきました・・・ (本記事は自分のブログからの転載記事です。) (2019年9月28日追記・更新: 追記内容はここを見てください) (2019年11月16日追記・更新: 追記内容はここを見てください) (2021年3月7日追記・更新: 追記内容はここを見てください) TL;DR Scala 3のリサーチコンパイラであるDotty 0.18.1-RC1にインデントベースの構文が実装されました Dotty 0.19.0-RC1の変更に合わせて修正しました インデントベースの構文はまだ提案段階でありScala3の正式な仕様に決定したわ

                                                          Scala 3、Pythonのようにインデントベースの構文で書けるようになるってよ! - Qiita
                                                        • 『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その1 - Magnolia Tech

                                                          昨年末から時間さえ有れば『Scala関数型デザイン&プログラミング』の演習問題の解き直し、というのを久しぶりに(3年ぶり?)をやっていました。 Scala関数型デザイン&プログラミング―Scalazコントリビューターによる関数型徹底ガイド 作者:Paul Chiusano,Rúnar Bjarnason,株式会社クイープインプレスAmazon 過去に解いた時の記憶がだいぶ飛んでしまっていたので、久しぶりに解き直してみるか、と思ったものの、そのまま解いてもあまり面白くありません。そこで演習問題を都度Scala3ベースに置き換えながら解くことにしました。 なお、原著の『Functional Programming in Scala』は今年Scala3対応版の第2版が出版される予定で、GitHubのリポジトリにも既に第2版用のScala3対応版コードが用意されています(が、そちらを見てしまうと練

                                                            『Scala関数型デザイン&プログラミング』の演習問題をScala3で解く その1 - Magnolia Tech
                                                          • Scala3の新機能紹介 - Adwaysエンジニアブログ

                                                            こんにちは、おかむです。 開発開始から8年。28,000件のコミット、7400件のPR、4100件のClosed issue… 5/14に、とうとうScala3.0.0がリリースされました。 Scala3では、最新の型理論とScala2での経験が反映されています。 Easy to use, learn, and scale 移行や学習のためのドキュメント、Scala3の新しいマクロの解説など、各種ドキュメントの充実化も行われています。 今回はScala3の新しい要素について紹介していきます。 ちなみにすべては紹介しきれないので大きめの機能に絞っています。 新しい文法 New Control Syntax (新しい制御構文) Optional Braces (括弧の省略) 型システム Intersection Type (交差型) Union Type (共用体型) Type Lambda

                                                              Scala3の新機能紹介 - Adwaysエンジニアブログ
                                                            • Scala3でQuartoを実装してみた - Qiita

                                                              まえがき みなさん、Quartoをご存知ですか? 自分は先日、会社で教えてもらって初めて知りました。 4x4のフィールドにコマを置いて勝敗を争うボードゲームなのですが、シンプルながらなかなかに奥深くて面白かったので、コードで表現してみることにしました。 そして、せっかくイチから書くなら、Scala3を採用してその表現力を生かしたい、ということで、コードは全部Scala3です。 以下、Scala3の新機能の紹介を交えながら、コードを解説していきます。 コードのリポジトリはこちらです。 日々ちょっとずつ、色々なアイデアを試していますので、必ずしもこの記事での解説が最新のコードと一致していない場合もあることをご了承ください。 ScalaのバージョンはScala3.0.0-M3で書いています。 Optional Bracesについて Scala3の新しいシンタックスとしてOptional Brac

                                                                Scala3でQuartoを実装してみた - Qiita
                                                              • GSoC 2021 に参加して Scala3 の開発環境を改善させてもらった - たにしきんぐダム

                                                                2021/06 から参加していた Google Summer of Code 無事修了しました。 GSoC では Add synthetics and symbol information for semanticdb in Scala 3 という題目で Scala3 の IDE や Linter のための基盤となる機能の開発をしていました。 今回の成果により Scala3 でも Metals (Scala の Language Server 実装) で go-to-implementation, show-inferred-types, show-implicit-arguments (& context-params) などなどの機能が使えるようになる予定です。 https://summerofcode.withgoogle.com/projects/#5527632738779136

                                                                  GSoC 2021 に参加して Scala3 の開発環境を改善させてもらった - たにしきんぐダム
                                                                • Scala 3.0.0-RC1 – first release candidate is here

                                                                  Greetings from the Scala 3 team! We are delighted to announce the first release candidate of the stable version of Scala 3 – Scala 3.0.0-RC1. This release brings some last-minute polishings, clean-ups and changes before the big release. There were a few language changes to improve the user experience, as well as the polishings of the metaprogramming framework. We have also worked on the issues tha

                                                                  • まえがき|やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~

                                                                      まえがき|やさしい Scala ~Json ライブラリ の実装をなぞりながら Scala 3 と関数型プログラミングの初歩を学ぶ~
                                                                    • 「Scala 3」が公開 | OSDN Magazine

                                                                      Scalaプログラミング言語の開発チームは5月14日、最新のメジャーリリースとなる「Scala 3」を公開した。 Scalaは強い静的型付けを特徴とするプログラミング言語。Scala 3は2006年に公開されたバージョン2に続くメジャーリリース。”Dotty”という開発コードで8年の開発期間を経てのリリースとなり、その間100人以上の開発者が参加した。コミット数は約2万8000件、プルリクエストは約7400件あり、約4100のイシューをクローズしたと報告している。Scala 3はScala言語を全面的に見直し、型システムの多数の要素に変化が加わっている。 多数の新機能が盛り込まれているが、中でもバージョン2では実験扱いだったマクロを強化し、インライン、コンパイル時最適化などのメタプログラミング向けのツールを導入した。 シンタックスでは、”静かdなシンタックス”として構造を制御するif、wh

                                                                        「Scala 3」が公開 | OSDN Magazine
                                                                      • Scala 3は普通にAWS Lambdaで実行できる - Lambdaカクテル

                                                                        そういえばScalaをAWS Lambdaで実行するのどうするんだっけ、と思った。実はScalaをLambdaで動かしたことは無い気がするので調べておいた。今回はJava 17を前提に動作させる。 tl;dr AWS LambdaのJavaランタイム sbt-assembly sbt-assemblyへの依存性の宣言 ファイル名衝突時の設定 その他のsbtの設定 最終的なbuild.sbt コード本体 ビルド AWS Lambda側の設定 まとめと感想 参考文献 追記 今回書いたサンプルプロジェクトはこちら。 github.com tl;dr sbt-assemblyを使ってUber JARを生成する AWS LambdaをJavaランタイムでセットアップする エントリポイントを指定する JARをアップロードする 動く AWS LambdaのJavaランタイム けっこう前から、AWS La

                                                                          Scala 3は普通にAWS Lambdaで実行できる - Lambdaカクテル
                                                                        • Scala3学習メモ: Scalaとnull, Scala2とScala3と - Magnolia Tech

                                                                          Rustの公式ドキュメントにnullに関する興味深い記事("Null References: The Billion Dollar Mistake"(Null参照: 10億ドルの間違い))が引用されています。 Enumを定義する - The Rust Programming Language nullは、インタフェースにおける双方の合意として取り得る値とするか、しないかがいつもあいまいになってしまう点が問題。ある変数の型を見てもnullを取り得るかは明示されていないにも関わらず、人によって「nullを考慮すべき」「nullは取り得ない」の二つの状態が混在してしまう。たとえ、同じ人が双方のコードを書いていたとしても。 ScalaにおけるNull型のクラス階層における位置付けと、nullの代入 https://docs.scala-lang.org/tour/unified-types.htm

                                                                            Scala3学習メモ: Scalaとnull, Scala2とScala3と - Magnolia Tech
                                                                          • New in Scala 3

                                                                            ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Scala 3 は Scala 2 から大幅な改善が行われ、さまざまな新機能が追加されている。 ここでは Scala 3 の特に重要な変更点を概観する。 より詳しく知りたい方は以下の参考リンクを参照。 Scala 3 Book は Scala を書いたことがない開発者向けに書かれている。 Syntax Summary では Scala 3 で新しく追加されたシンタックスを解説している。 Language Reference を見ればScala 2 と Scala 3 の変更点を詳しく確認できる。 Scala 2 から

                                                                            • 忙しい人のためのScala3予習メモ - Qiita

                                                                              この記事は、 FOLIO Advent calendar 2020 の22日目の記事です。 これは何? 「Scala3の予習したいけど時間がない!」「まだM3だしガチでキャッチアップするのはちょっと…」という人のために、公式ドキュメントを斜め読みした自分が仕事で影響が大きそうなScala3の変更点をまとめたものです。 ほとんどのサンプルコードは、Dottyの公式ドキュメントから引用しております。 val,def,型エイリアスがトップレベルに書けるようになった Scala2では、全てのval,def,型エイリアスは何かしらのclass,trait,objectなどの中に書かなければエラーになりましたが、Scala3では(まるでREPLのように)class外にdefやvalを定義することができるようになりました。package objectが要らなくなりますね。

                                                                                忙しい人のためのScala3予習メモ - Qiita
                                                                              • Scala 3

                                                                                This website contains the developer documentation of the Scala 3 compiler. It targets developers interested in contributing to the compiler, or learning its internals. If you want to learn how to use Scala, go here. Table of Contents Reference Contributing Internals Blog (archive)

                                                                                • Tuples bring generic programming to Scala 3

                                                                                  ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Tuples allow developers to create new types by associating existing types. In doing so, they are very similar to case classes but unlike them they retain only the structure of the types (e.g., which type is in which order) rather than giving each element a name

                                                                                    Tuples bring generic programming to Scala 3

                                                                                  新着記事