並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 373件

新着順 人気順

Scalaの検索結果161 - 200 件 / 373件

  • Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの?

    1. はじめに 最近のエフェクトシステム2大ホットトピックといえばAlgebraic EffectsとExtensible Effectsだろう [要出典]。 度々この2つの違いは何なのかという質問を見ます。 比較というわけでも無いんですが、今回はこの2つを並べて見比べてみましょう。 そいうえばだいぶ前の発表でこんなこと言ってましたけど 本当かしら 2. Algebraic Effects and Handlers PlotkinとPowerによりもたらされた、計算エフェクトを代数的に表現するという考え方[1]に、PlotkinとPretnarがハンドラを追加したもの[2]である。 詳細はカツアイしますんで、本ブログをご巡回ください。 簡単にまとめると、 新たな言語機能 エフェクト(仕様)とハンドラ(実装)が分離できるモジュラーな手法 エフェクトシステムによって計算中にどのようなエフェクト

      Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの?
    • Open-sourcing Polynote: an IDE-inspired polyglot notebook

      We are pleased to announce the open-source launch of Polynote: a new, polyglot notebook with first-class Scala support, Apache Spark integration, multi-language interoperability including Scala, Python, and SQL, as-you-type autocomplete, and more. Polynote provides data scientists and machine learning researchers with a notebook environment that allows them the freedom to seamlessly integrate our

        Open-sourcing Polynote: an IDE-inspired polyglot notebook
      • Scala(スカラ)とは?言語の特徴や開発手法、Javaとの違いや共通点について解説! - システム開発のプロが発注成功を手助けする【発注ラウンジ】

        近年、アメリカのIT企業での導入数が増加傾向にあるプログラミング言語の1つが「Scala(スカラ)」です。Javaとの互換性が良く、その使い勝手の良さで人気を集めています。今後、日本でも導入が増える可能性が高く、すぐにでも勉強したいと思っているエンジニアも多いでしょう。 今回は、Scalaの特徴や開発手法を解説するとともに、Javaとの関係についても触れていきます。Scalaを使ったシステム開発を考えている方は必見の内容です。 目次 Scalaは、2001年にスイス連邦工科大学のマーティン・オーダスキー教授によって開発され、2003年に内部で公開、2004年にJavaのプラットフォームにリリースされたプログラミング言語です。プログラミング言語として定着しているJavaが登場したのが1995年であり、Scalaは比較的新しい言語といえます。 Scalaは現在も進化を続けており、2006年には

          Scala(スカラ)とは?言語の特徴や開発手法、Javaとの違いや共通点について解説! - システム開発のプロが発注成功を手助けする【発注ラウンジ】
        • Scalaで参照透過に作用を扱う - エムスリーテックブログ

          エムスリーエンジニアリンググループの冨岡です。この記事はエムスリーAdvent Calendar及びScala Advent Calendarの20日目の記事です。 はじめに Future の特徴 Future の長所 標準ライブラリで提供されている 抽象化の戦略がわかりやすい Future の短所 処理を即時実行する 結果が否応なしにメモ化される ExecutionContextが必要なシーンが多い 参照透過な作用 (コラム)プログラムをプログラムすることについて 3rd party の Pure Effect ライブラリの紹介 Cats Effect: IO Monix: Task ZIO まとめ 参照透過性について補足 We're hiring! はじめに Scalaでは、作用、特に非同期での作用を扱うためのデータ型として scala.concurrent.Future が提供されて

            Scalaで参照透過に作用を扱う - エムスリーテックブログ
          • Dependent method types を利用した軽量Clean Architecture の紹介

            class: center, middle # <strong>Dependent method types</strong><br/>を利用した<br/>軽量<span style="color: blue;">Clean Architecture</span><br/>の紹介 Scala関西Summit 2019 10/26 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-lef

            • 過去のGitHub Actionsのbuild時間を取得して集計してグラフにする - xuwei-k's blog

              継続的にメンテナンスするのではなくて、雑な使い捨てでいいならshellscriptとjq職人芸でいけるので頑張ってしまったけれど、継続的にやるならもっと違うもので書いた方がメンテナンスしやすいと思います。 細かい部分はいくらでも改善の余地があるとは思いますが、とりあえず動いたのでヨシ・・・!? 以前も多少似たような何か作ったけど、こういうの誰か既にもっと綺麗に作ってないんですかね。 xuwei-k.hatenablog.com GitHub Actionsのログはデフォルトでは90日保存されてるはずなので、その程度の期間をなんとなく集計したいだけならば、こうやって後から集計するだけで十分ですね。 もちろん、yamlの内部の構造がすごく変わっていると集計が難しいか実質不可能になるリスクはありますが。 もっとしっかり計測したいならば、buildした時点で専用の場所に綺麗に記録して、他のもっとリ

                過去のGitHub Actionsのbuild時間を取得して集計してグラフにする - xuwei-k's blog
              • Scalaで関数型 再入門

                よく遭遇する、Scala標準ライブラリだけだと大変なケースでも、 Catsを使うとうまく関心事を分離して、クリーンかつ拡張に対して頑強になることがあります。 このスライドでは、そういった場合のCatsの使い所について、初学者向けに解説をしています。 2019年7月26日のセプテーニ・オリジナルでの社内勉強会資料です。

                  Scalaで関数型 再入門
                • EmacsによるScala開発 2022年版 (補完編) - Lambdaカクテル

                  最近ちまちまEmacsでScalaを書けるようにしているのですが、そのメモ的な記事です。特に、補完の話に注目して書きます。 補完 じゃあどうすればいいの 相性の悪いプラグイン 参考elisp 01_company.el 02_lsp.el 03_scala.el 補完 補完を行うためには、まずは言語を認識して適切な解析を行うメカニズムが必要になります。この仕組みはデファクトスタンダードが確立しています。それはLSP (Language Server Protocol) です。LSPはエディタと解析ツールとの間の共通語を定義して、どんなエディタでも等しく補完や解析の恩恵に与れるようにするものです。ScalaのデファクトスタンダードなLSPバックエンドはMetalsです。MetalsはLSPの上で各種エディタにScalaの解析メカニズムやリファクタ機能等を提供します。 次に、エディタがLSPに

                    EmacsによるScala開発 2022年版 (補完編) - Lambdaカクテル
                  • Playframework 3.0.0にアップデートしてみた - Assured Tech Blog

                    こんにちは、エンジニアの岩松です。 この記事はScala Advent Calendar 2023 20日目の記事となります。つまり今日は12月20日です。 AssuredではバックエンドアプリケーションにScalaおよびPlayframeworkを採用しており、直近メジャーアップデートとなる3.0.0が公開されたため、2.8.x→3.0.0のアップデート対応をしていました。作業メモとして公開しますのでご参考になれば幸いです。 何が変わったのか? ハマったこと Pekko関連ライブラリがバージョン解決できずDI(Dependency Injection)が失敗する 設定ファイル経由でのExecutionContext生成ができない Dockerコンテナが動かない おわりに 何が変わったのか? Playframeworkのメジャーアップデートは久しぶりで、今回2.9.0と3.0.0が同時期に

                      Playframework 3.0.0にアップデートしてみた - Assured Tech Blog
                    • Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ

                      主催者のOliさんからのDMで急遽 Scala Love in the City で話させていただくことになり、あまり時間もなかったので準備なしでも話せるGitBucketの紹介をさせていただきました。スライドは以下になります。 GitBucket: Open source self-hosting Git server built by Scala from takezoe www.slideshare.net 他のトークはScalaでの関数型プログラミングやScala3の話題が多かったと思いますが、具体的なアプリケーションレイヤから見たScalaという観点での話ができればと思い、前半はGitBucketの紹介、後半は8年間開発を続けてきて難しかったこととしてScala 2.12へのアップグレードについて話させていただきました。 なぜScala 2.12へのアップグレードが辛かったのかと

                        Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ
                      • 2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog

                        すごく重要な予定が色々と決まりつつあるので、独断で勝手に?雑に?選んで紹介しておきます。 単なる翻訳というよりは、自分の感想や主観みたいなものが入ってます。 詳細な原文を知りたい人は、以下のあたりを読んでください https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/General.md https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/releases/release29/migration29/Migration29.md https://

                          2023年10月時点のplayframeworkの今後の予定 - xuwei-k's blog
                        • KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG

                          計測プラットフォーム部バックエンドチームの鈴木です。 この記事では、Akka gRPCを利用しているScalaアプリケーションのZOZOMATに対してKamonを通じてAPMを導入した際に得られた知見、うまくいかなかった内容やその対応策を紹介します。 Akkaとは 最初にAkkaについて簡単に紹介します。Akkaは、JVM上で並行および分散アプリケーションの構築を容易にするツールキットとランタイムです。 Actorモデルの実装であるAkka Actorsを中心とし、Akka StreamsやAkka HTTP、Akka Clusterなど様々なツールが提供されています。詳しくは公式ドキュメントやAkka実践バイブルを読むことで深く理解できます。書籍で紹介されているAkkaのAPIは、今では古いものとなっていますが、Akkaの楽しさを知るにはとても良い本です。 私たちが開発しているZOZOM

                            KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG
                          • Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog

                            ScalaでもJavaでも、overrideする際に、sub typeでoverrideすることが可能です。 (すごく古い1.4以前のJavaでは不可能だったはずだが) Javaの仕様書で英語だと covariant return type というはず?の機能です。 https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#d5e14373 $ jshell | Welcome to JShell -- Version 17.0.6 | For an introduction type: /help intro jshell> interface A { Object a(); } | created interface A jshell> class B implements A { @Override public St

                              Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog
                            • コンテキスト境界を定義する - Eric Evans氏のDDD Europeでの講演より

                              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が最近リリースされ、重要な変...

                                コンテキスト境界を定義する - Eric Evans氏のDDD Europeでの講演より
                              • Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル

                                追記(2023-04-04): Scala CLIを使いましょう Ammoniteをベースにより洗練されたScala CLIが開発され、Scalaのデファクトスタンダードとして定着しつつあります。公式にscalaと入力した際の標準アプリケーションとなることも予見されているため、こちらを学ぶとよいでしょう。 scala-cli.virtuslab.org tanishiking24.hatenablog.com zenn.dev Ammonite文法最速マスター この記事は、Scalaのスクリプティング環境でありREPLでもあるAmmoniteの基礎的な利用方法をマスターし、ちょっと凝ったシェルスクリプトをAmmoniteスクリプトに書き換えられる程度のAmmonite力を手に入れるためのものです。 追記(2023-04-04): Scala CLIを使いましょう Ammonite文法最速マ

                                  Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル
                                • Actor Model meets the Kubernetes - CNDT 2019

                                  上手く活用すればコスト削減につながる、ONTAPの Temperature Sensitive Storage Efficiency (TSSE) の紹介

                                    Actor Model meets the Kubernetes - CNDT 2019
                                  • On the future of Play Framework | @lightbend

                                    TL;DR - We are working to form a community-led organization that would take responsibility for the future development of Play Framework outside of Lightbend. Ever since I started Lightbend (formerly known as Typesafe) with Martin Odersky, now more than 10 years ago, Open Source Software (OSS) has been at the heart of what we do. It is fair to say that Lightbend would not exist without the transfor

                                      On the future of Play Framework | @lightbend
                                    • Akkaを使ってScalaのFutureにタイムアウトメソッドを生やす(あと注意点) - ravineport blog

                                      ScalaのFutureにはタイムアウトを設定するメソッドはない。 Await.result で設定時間待つことができるが、失敗した場合は例外がスローされてしまうのでTryなりで扱う必要があるし、なによりブロッキングするのでスレッドを無駄遣いしてしまっている。 そこで akka.pattern.after メソッドを使う。 akka.pattern.afterを使ったFutureのタイムアウト設定 こちらを参考にした stackoverflow.com import akka.actor.ActorSystem import scala.concurrent.duration._ import scala.concurrent.{ ExecutionContext, Future, TimeoutException } object Main { implicit class Future

                                        Akkaを使ってScalaのFutureにタイムアウトメソッドを生やす(あと注意点) - ravineport blog
                                      • 大量リクエストを低コストでさばく AWS Lambda 関数を JVM で実現 - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

                                        こんにちは、Chatwork 株式会社のソフトウェア開発者、立野と申します。 2021 年 7 月に アマゾン ウェブ サービス ジャパン (AWS) さん主催のイベント「そろそろマネージド、クラウドネイティブで行こう ! サーバーレスへのチャレンジ」にて、Chatwork におけるサーバーレス開発事例をお話しました。 弊社事例に対して「エンタープライズ開発でおなじみの Java/Scala で、高速・低コストの AWS Lambda 関数を実現する技術」が興味深い、という反応をいただきました。 この点を「ぜひ深堀りして紹介してみませんか」と AWS のソリューションアーキテクトの方々にお誘いを受けましたので、皆さんでも お試しいただけるソースコード つきの実践形式でご紹介いたします。 なお弊社事例の背景やアーキテクチャ詳細などにご興味のある方は、ぜひブログ記事や発表資料をご覧ください。

                                          大量リクエストを低コストでさばく AWS Lambda 関数を JVM で実現 - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
                                        • 関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog

                                          こんにちは、中途三年目の堀越です。 近頃、Scalaのコミュニティにおいて Functional Programming による実装テクニックを紹介する記事や発表を見たり聞いたりすることは珍しいことではなくなってきました。弊社にもたくさんの関数型ニキ*1が在籍しており、わたしも日々影響を受けています。 ということで、本日はわたしが所属するチームでの日々の Scala 開発における取組みや戦略をサンプルコード*2と合わせて紹介していきます。 高カインド型によるEffect型の抽象化 私達はドメイン駆動設計を実践しています。なのでドメインロジックはドメインの関心事に集中できるのが理想です。ドメイン層を抽象化し、特定の実行環境や技術的関心事に依存しない戦略として 高カインド型 を用いてEffect型を抽象化します。 インターフェース定義 例えば Repository のインターフェイスのは以下の

                                            関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog
                                          • 4年続いた長期プロジェクトを効果的に“ふりかえる”ためにBacklogチームがやったこと【Backlog Play化プロジェクト】 | Backlogブログ

                                            こんにちは、Backlogチームの小久保です。Backlogチームでは、約4年続いたBacklogをJavaからScala / Play Frameworkに移行するプロジェクトについて、2日間かけてふりかえりをしました。そのとき得られた知見を整理してみました。 長くやってきたプロジェクトを振り返ると、プロジェクトに大きな影響を与えた決断がいくつか必ずあります。その決断が正しかったのか、今後の自分たちの重要な意思決定をどう改善していけるか、しっかり考えるためにも効果的にふりかえりをすることが大切です。 本記事では、ITツールの活用方法や特定のプロセスの話は出てきませんが、Backlogチームがおこなった、長期プロジェクトを振り返るために役立ったことを整理してお届けします。 プロジェクトの内容とふりかえりをした理由 Backlog Play化プロジェクトとは、Backlogの動作環境、コード

                                              4年続いた長期プロジェクトを効果的に“ふりかえる”ためにBacklogチームがやったこと【Backlog Play化プロジェクト】 | Backlogブログ
                                            • sbtにおけるテストの並列実行の設定詳細解説 - xuwei-k's blog

                                              いきなり本題というか、一番言いたいことを書くと、まず テストの fork の設定によってぜんぜん違う。 という点があまり知られていない気がします。 *1 というか、自分も今回調べるまで、微妙に古い知識のままで完璧に知らなかったので、今一度理解した現時点での詳細を今書いています。 sbtにおいて、テストがどう並列化されるか?に関して、関係するというか、今回話すのは、以下の点です Test / parallelExecutionというkey Test / fork が true か falseか concurrentRestrictionsというkey testForkedParallelというkey また、今から話すのはsbt 1.3.8時点の情報です。 さらに前提として、マシンのCPUのコア数によって挙動が異なる可能性がありますが、ひとまずそれなりに十分にコア数がある、として話を進めます。

                                                sbtにおけるテストの並列実行の設定詳細解説 - xuwei-k's blog
                                              • Release 📣 Play 3.0.0 · playframework/playframework

                                                The Play Team is thrilled to announce the release of Play 3.0.0! 🎉 This release brings highly anticipated new features, including support for the latest Java LTS versions and Scala 3. It continues our commitment to making Play more modular, flexible, and secure. Play 3.0, together with Play 2.9, represents a significant milestone as they are the first major releases in almost four years and the f

                                                  Release 📣 Play 3.0.0 · playframework/playframework
                                                • The Death of Hype: What's Next for Scala

                                                  A recent tweet by a friend of mine noted how the public interest in the Scala programming language seems to have plateaued or waned, which matches my feeling of the latest trends and zeitgeist. This blog post will go into why I think that has happened, where Scala stands now, and what the future holds for the Scala community. About the Author: Haoyi is a software engineer, and the author of many o

                                                  • サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019

                                                    Scala秋祭り https://scala-aki-matsuri.connpass.com/event/142817/

                                                      サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019
                                                    • Scala関西Summit 2019に参加してきました #scala_ks - Unipos engineer blog

                                                      こんにちは!Fringe81 エンジニアの谷口です。2019年10月26日(土) - 27日(日)に開催されたScala関西Summit 2019に同期の大沼と参加してきました。 2019.scala-kansai.org Scala関西Summit Scala関西Summitは、Scalaをテーマとした関西で最大級の技術カンファレンスです。Scalaの導入事例やTIPSなどなどScalaに関わるあらゆる人を対象にしたカンファレンスです。 2日間の開催で、1日目は講演・ハンズオンdayです。講演は公募によって選ばれ、大変幸運なことに私のプロポーザルを採択して頂きました! 2日目はアンカンファレンスdayです。当日の朝に参加者全員で何を話すかが決められます。1日目の会場のホワイトボードに挙げられた『こんなこと話してほしい!』について話せる人を募ってセッションのタイムテーブルを決めていきます。

                                                        Scala関西Summit 2019に参加してきました #scala_ks - Unipos engineer blog
                                                      • 大変だよ、Tagless-final パターン

                                                        2020-09-25 scala.tokyo - オンライン LT1 https://scala-tokyo.connpass.com/event/187140/

                                                          大変だよ、Tagless-final パターン
                                                        • record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types

                                                          In this talk, we learn about the basics of my library called "record4s", which provides type-safe extensible records for Scala 3. It runs on JVM, JS, and Native platforms. You will see how it is implemented efficiently by using Scala 3 macros, and how record types as structural types, which work without reflection in Scala 3, are helpful in domain modeling. record4s --- Scala 3のための拡張可能レコード、そして構造的型

                                                            record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types
                                                          • 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
                                                            • ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech

                                                              既にセールの時に電子書籍版で買っていた『Functional Programming in Scala, Second Edition』、ペーパーバック版の方も追加で買った。 Functional Programming in Scala, Second Edition (English Edition) 作者:Pilquist, Michael,Chiusano , Paul,Bjarnasson, RúnarManningAmazon ソフトウェア関係の技術書がこの先、どのくらい需要があるのか、タイムリーに改版されるのか、更には日本で翻訳版が出版されるのか......市場のことはよく分からないけど、「この本はずっと手元に置いておく価値が有る」と思ったものはなるべく紙の書籍で手元に置くようにしている。 電子書籍だと、すっかりその存在を忘れてしまって、最後まで読まなくなってしまうのと、情報

                                                                ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech
                                                              • AWSでCQRS Event Sourcing するにはどうすればいいのか

                                                                世の中にはクラウドを採用していても、スケーラビリティのないサービスを開発・運用しているエンジニアは少なくないと思います。過去の私もその一人でした。CQRS/Event Sourcingはその解の一つです。私自身も2016年にCQRS/ESに出会って以来、AWS上でその根本的な課題に取り組んで来ました。その経験を生かしてAWSでの実現方法について解説します。

                                                                  AWSでCQRS Event Sourcing するにはどうすればいいのか
                                                                • 4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム

                                                                  画像元: https://twitter.com/scaladays/status/1701616520546206039 Scala の世界最大のオフラインカンファレンス、Scala Days Madrid 2023 に参加してきました。Scala Days は例年に2回、アメリカとヨーロッパで開催されており、今年は Madrid での開催でした。 scaladays.org コロナ期間中 Scala Days は開催されておらず、2019年以来4年ぶりの開催!(前回はLausanne開催でした) developer.hatenastaff.com 会場は世界中から集ったたくさんの人で賑わい、参加者の熱意の高さから感じられるとても良いイベントでした。その中で印象に残ったセッションの紹介を交えつつ、会場の様子をレポートしたいと思います。 カンファレンス本体の話に移る前に、周辺イベントを紹介

                                                                    4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム
                                                                  • for文がわかるプログラマのためのモナド最速入門 - Qiita

                                                                    はじめに 近頃の for 文は、コレクションの要素を直接参照できたり、 yield で評価結果を返せたり、多重ループを一気に回せたり、便利なものが多いですね。たとえば Scala であれば、こんなふうに書けます。 val list = for { a <- List(100) b <- List(10, 20) c <- List(1, 2, 3) } yield a + b + c print(list) // List(111, 112, 113, 121, 122, 123) この for 文のみを頼りに、ときおり関数型プログラマが唱える「モナド」に入門してみよー、というのが本記事の趣旨です。 なるべく簡単なコードを挙げながら、できるだけ「圏論」の各種定義やその気持ちまで掘っていくので、前提知識なしで読みすすめられると思います。 Scala の for 文 まずは Scala 使いで

                                                                      for文がわかるプログラマのためのモナド最速入門 - Qiita
                                                                    • 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
                                                                        • Emacs+MetalsでScalaのデバッガを使う - 貳佰伍拾陸夜日記

                                                                          こういう話がありました。 Feature Request : Support for scala in dap-mode · Issue #196 · emacs-lsp/dap-mode を見てもdap-modeの使い方がよく分からなかったし別に時間をかける所じゃないなと思ったので、デバッグする時だけはIntelliJを使うことにしようとしたのですが、私の環境だとUIが崩壊してデバッグ設定以前の問題になってしまいます。 実はMetalsの(というかlsp-mode+dap-modeの)デバッガはいま普通に機能するけど、確かに使い方(使える状態にするコツ)がちょっとむずかしい感じがしますね。実際にはやることはあんまりないんだけど、いざやろうとすると時間を食うと思うので、時間を食われてやった側の人間としてやり方を書き記しておこうと思います。本当は最近のEmacsのモダンな環境ぜんぶ紹介するみ

                                                                            Emacs+MetalsでScalaのデバッガを使う - 貳佰伍拾陸夜日記
                                                                          • 関数型プログラミング: map結果を引数とのペアにしたいときはStateが便利だったりする(StateTもあるよ) - Lambdaカクテル

                                                                            この記事では、Scala 3と関数型ライブラリであるCatsを時折使いつつ、Stateモナドを利用することでmap結果にうるおいを与えられるという話題を紹介します。 よくある処理: mapしてからペアにする まあまあよくある: メソッドはたまに値返さないことがある まあまあよくある: メソッドが非同期の場合もある Stateモナド 通常の関数をStateに持ち上げる Stateでmapする StateT登場!! 一般化する まとめ プログラミング言語で最も頻繁に使われるデータ構造といえば、タプル、とりわけ2つの要素を持つタプルであるペアかもしれない。 【タプルとは?】 タプルとは、いくつかの型を並べて組にし、1つの型として扱えるようにしたものです。例えば、StringとIntをくっつけた(String, Int)というタプルを考えることができます。 タプルを構成する型の数によって、3-タプ

                                                                              関数型プログラミング: map結果を引数とのペアにしたいときはStateが便利だったりする(StateTもあるよ) - Lambdaカクテル
                                                                            • From Tagless-Final to Typed-Final: Program Transformations in the Final Style

                                                                              From Tagless-Final to Typed-Final: Program Transformations in the Final Style

                                                                                From Tagless-Final to Typed-Final: Program Transformations in the Final Style
                                                                              • 面倒なことはScalaスクリプトにやらせよう

                                                                                面倒なことは Scalaスクリプトにやらせよう 2019/09/16 Scala秋祭り Takumi Kadowaki @blac_k_ey

                                                                                  面倒なことはScalaスクリプトにやらせよう
                                                                                • ベルリンでScala Meetupを開催しました! - Unipos engineer blog

                                                                                  こんにちは! Fringeのエンジニアの藤野です。 今回ベルリンでScala Meetupを開催しましたので、開催レポートとベルリンのScala事情について紹介します。 開催するまでの経緯 そもそもなんでベルリンで開催?という疑問を持つ方もいるかもしれませんが、実は今年の2月にFringeの子会社であるUniposがベルリンでドイツ支社を立ち上げました! 私もそのタイミングで2月から現地で働いています。 ピアボーナス「Unipos」ドイツの有力メガベンチャーで試験導入開始 〜同時にベルリンに支社を設立しヨーロッパへ進出〜 | News | Journal | Fringe | Be an Explorer ベルリンではMeetupが盛んに行われており、様々なテーマのMeetupがベルリン各地で頻繁に行われています。 参加者はMeetupアプリを通して定期的にイベント情報を取得し、興味のある

                                                                                    ベルリンでScala Meetupを開催しました! - Unipos engineer blog