並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 611件

新着順 人気順

scalaの検索結果201 - 240 件 / 611件

  • Cloudflare functions with Scala.js

    Indoor VivantsAnton Sviridov. I love reinventing the wheel and I usually use Scala for that. TL;DR We are deploying an app to Cloudflare using Scala.js We are using ScalablyTyped We are using Scala 3 heavily Code on Github Deployed app Cloudflare API bindings Welcome to the "Put ma Scala on yo cloud" series I want to say that I'm kicking off a blog series, but even I don't believe that. If I did,

    • Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ

      以前、Scalaを使ってCLIツールを作るという記事を書いたのですが、やはりJVMベースのアプリケーションには起動時間のオーバーヘッドが付き物なのでちょっとしたCLIツールをScalaで書こうという感じにはなかなかなりません。そこで今回はPicocliというJava向けのCLIツール用ライブラリとGraalVMを使ってネイティブCLIコマンドをScalaで作る方法を試してみました。 github.com sbtプロジェクトの作成 今回はPicocliのドキュメントで例として掲載されていたchecksumコマンドをScalaで実装してみます。まずは以下の内容でbuild.sbtを作成します。 name := "picocli-scala-example" version := "0.1" scalaVersion := "2.12.7" libraryDependencies ++= Seq

        Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ
      • ビルドツール「Bazel」について | フライウィール

        ソフトウェアエンジニアのshinyaです。 2019年10月に、ソフトウェアのビルド・テストツールである「Bazel」のバージョン1.0がリリースされました(Bazel公式ブログ)。 Bazelは使いやすいのですが、現時点では情報がまとまっているサイトが少ないです。そのため、この記事では私が調べたことをまとめることにしました。 目次 BazelとはBazel(Bazelisk)のインストールBazelのチュートリアル空のBazelワークスペース簡単なJavaパッケージより実践的な例Apache Spark Scalaパイプライン参考サイトなど適宜 NOTE:という項目で、補足的な情報を追加しています。 以下は2019年11月24日時点(Bazel 1.1.0)での情報です。コードはUbuntu 18.04とmacOSでテストしました。 BazelとはBazel (/ˈbeɪzˌəl/1)

          ビルドツール「Bazel」について | フライウィール
        • Chatworkでリアクション機能をリリースした話_scala_ks.pdf

          Micro Frontends Unmasked: Opportunities, Challenges, Alternatives

            Chatworkでリアクション機能をリリースした話_scala_ks.pdf
          • Minimal Cake Pattern 再考 - Qiita

            かつて Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 という記事が公開されたとき、ぶっちゃけ私は 100 日も経てば忘れられているだろうと思っていました。私の予想に反して 2020 年現在でも Twitter では Minimal Cake Pattern への言及がたまに見られ、中にはこのパターンが(あるいは DI そのものが)難しいと感じる人もいるようなので、今一度このパターンについて整理してみようと思います。 依存性注入とは Minimal Cake Pattern は 依存性注入 (Dependency Injection, DI) を実現するためのデザインパターンです。ですのでまずは DI についておさらいしましょう。理解済みであればこの節は飛ばして構いません。 例として、時間の計測を行う

              Minimal Cake Pattern 再考 - Qiita
            • Scalaでwhileやvarを使ってもいい理由 - Qiita

              まえがき Scalaを利用している現場では、しばしば、コーディング規約、あるいは、コードレビューで「varやwhileを使っている」ことが指摘されて、使わないように修正させれることががあります。 どこの現場で、という話はしないですが、私が実際に見たり聞いたりした範囲では、5社以上はあるんじゃないか、という感じです。 もちろん、コーディング規約やコードレビューの指針はそれぞれの会社で適切に運用されていればよくて、個々の話に私を口を出す権利は無いのですが、この話はScala現場でしばしば問題にされるので、一度書いておきたくなりました。 何故whileやvarが忌避されるのか これは、関数型プログラミングの文脈を知っている方なら、おおよそ推測がつくと思うのですが、本質的にそれらの言語機能は、副作用を前提としているから、というのがあると思います。 たとえば、以下のプログラムは、1から9までの数につ

                Scalaでwhileやvarを使ってもいい理由 - Qiita
              • Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル

                ScalaをネイティブコンパイルしてJVM無しで実行ファイルとして動かせるようにする仕組みであるScala Nativeが、いつのまにかシングルバイナリを出力できるようになっていた。これにより、Goと同じように1つのバイナリさえコピーすればScalaを動かせる環境が整ったことになる。 シングルバイナリ シングルバイナリとは、実行に必要なライブラリが静的にリンクされ、単体のバイナリとして完結した実行ファイルの通称*1である。より正確な表現として、静的リンクされた実行ファイルとか、静的実行ファイル(statically linked executable, static executable)というのがストレートだろう。この意味におけるシングルバイナリの対義語は動的リンクされた実行ファイル、動的実行ファイルである。英語だとdynamic executableだ。静的リンクされた実行ファイルは必

                  Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル
                • チームのスキル向上にもつながるシステム刷新 〜 Yahoo! JAPANアプリ「お知らせ」機能の開発事例

                  ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo! JAPANアプリの通知系バックエンドシステムを担当している福盛です。 今回はYahoo! JAPANアプリの「お知らせ」画面のバックエンドシステムの刷新をテーマに、「刷新にあたっての設計」と「その開発過程」についてお話ししたいと思います。 Yahoo! JAPANアプリの「お知らせ」画面は、現在アプリを通じて送信されたプッシュ通知の内容を一覧できる機能を提供しています。 表示される内容は例えば 最近の注目ニュース 災害情報 荷物の配送状況のお知らせ ヤフーの各種サービスからのお知らせ などです。 また上記の内容に加え、今後コンテンツの拡充を積極的に進めていくよう開発しています。 システムの刷新〜PHPか

                    チームのスキル向上にもつながるシステム刷新 〜 Yahoo! JAPANアプリ「お知らせ」機能の開発事例
                  • ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)

                    こういうつぶやきをした。書いたまんま。ScalaというよりJVMがしんどいって話。Scala Nativeに希望を見出せるだろうか… あ、誤解がないように書いておくと、Scalaを辞めるという話ではない。仕事は普通にあるのでScalaは使っていく(Scala3もやると思う) Scalaについては、2019年ぐらいが潮目だったのかもしれないなと。 グーグル・トレンドをみると、2014年ぐらいからGoの検索ボリュームが伸びていてScalaより増えている。Goの勢いがすごい。KotlinがAndroid公式言語に採用されたのは2017年。2019年ぐらいからKotilnとScalaの検索ボリュームが反転して、ScalaよりKotlinのほうが多くなっている。まぁ比較すると相関があるとミスリードしがちなんで要注意だけど、なんにしも2019年ぐらいからScalaの検索ボリュームがだいぶ減ってきている

                      ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)
                    • Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ

                      ざっくりまとめ Coursierの setup コマンドを使うとJDKとScala開発に必要なツールをまとめてインストールできるよ。 最近追加された install コマンド get-coursier.io Coursier といえば sbt v1.3.0 で取り込まれた高速でライブラリ依存を取得するためのOSSとして有名ですが、このCoursierにはCLIが提供されており、ライブラリ依存のグラフを出力したり、アプリケーションの起動スクリプトを用意するコマンドが提供されています。 最近の Coursier v2.0.0-RC のアップデートで install コマンドが追加されました。 Announcement: The install command of coursier is not experimental anymore, and is ready for prime time

                        Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ
                      • 貧者の Algebraic Data Types と(浅い)網羅性判定

                        こんにちは、びしょ~じょです。 これは TypeScript アドベントカレンダー 2020 の3日目の記事です。 ちなみに12月3日は冴草きいちゃんの誕生日です。大変めでたいですね。 1. はじめに 関数型プログラミングといえばなんですか? はい円楽さん早かった! はいはい、 パターンマッチング、いいですね。 パターンマッチングといえばプリミティブな数値や文字列のリテラルのみならず、ユーザが定義した型もその構造によってマッチできます。回りくどい言い方をしましたが代数的データ型(Algebraic Data Types, ADTs)です。 listing 1.1. 例えば OCamltype 'a option = | None | Some of 'a let to_default default o = match o with | None -> default | Some v -

                          貧者の Algebraic Data Types と(浅い)網羅性判定
                        • 拡張可能レコードのライブラリrecord4sについてScalaMatsuri 2024で発表しました - 貳佰伍拾陸夜日記

                          ScalaMasturi 2024で, 拙作の拡張可能レコードのライブラリrecord4sについて発表してきました. 発表で触れられなかった点も補足しながら, 内容を文章にしておこうと思います. とくにrecord4s以外のレコード実装との比較についてはこの記事での完全書き下ろしです. モチベーション Scala 3の標準機能による解決 理想 record4s Tips メソッドの定義 例を使ってJSONをデコード 内部実装 フィールドアクセス レコードの結合 重複キー問題 Scalaの他のレコード実装 shapelessのRecord scala-records Karlsson & Haller '18 record4sのArrayRecord Named Tuples 他の言語での例 PureScript TypeScript Haskell パフォーマンス レコード作成の実行時間

                            拡張可能レコードのライブラリrecord4sについてScalaMatsuri 2024で発表しました - 貳佰伍拾陸夜日記
                          • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

                            はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Python)・Spark Streaming(Scala)) ...etc など幅広い分野を担当しています。 担当しているプロダクトの中で広告配信システム(Scala)は、2014年に初期実装され現在(2021年)まで追加改修を継続的に行っているプロダクトになります。2019年の後半に「そろそろ刷新しよう」という声が上がり粛々と基盤固めを進めていましたが、他のプロダクトが落ち着いた今、ようやくチーム一丸となって広告配信システムのリプレイスに取り掛かり始めています。 今回のリプレイスでは Scala の関数型ライブラリであ

                              Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog
                            • ScalaとGolangでDDDを実装比較してみた

                              パラダイムの違う言語であるScala(PlayFramework)とGolang(Gin)を使い、同じ要件をDDDで実装しました。 DDDの実装例や言語毎の比較はあまり世間ではあまり見かけないので、ナレッジシェアも兼ねてまとめました。 前提 ScalaとGolangは別々のパラダイムから来ており、それぞれのメリット/デメリットが有ります 純粋に「やってみたらどうなるんだろう?」を実践したものであり、特定言語を持ち上げたりディスったりしたいわけではありません 実装は私が 現職 での経験を踏まえつつ自分なりにアレンジしたもの(特にScalaでの実装)です 「どんなケースにも対応できるDDDの正解実装」といわけではありません 経緯/モチベーション 業務ではDDDに沿ったweb APIを開発していることもあり、自分でイチから何か作ってみたかった そもそもゼロからアプリケーションを作る経験が少ないの

                                ScalaとGolangでDDDを実装比較してみた
                              • DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン | CyberAgent Developers Blog

                                DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン AI事業本部 Dynalystの黒崎(@kuro_m88)です。 今回はCA Tech JOBの制度を用いてインターンに参加して頂いた塚越さんからの寄稿記事です。 以下本文です。 みなさん初めまして! AI事業本部のDynalystというWeb広告に関するプロダクトのチームで、2020年3月の間 CA Tech JOBに参加させて頂きました、名古屋大学情報学部コンピュータ科学科4年の塚越駿(@hppRC)と申します。最近はもっぱら自然言語処理の研究やお勉強をしています。 本インターンでは、Scalaのactor modelを採用した並行処理ライブラリのAkkaと、それをベースにしたストリーミング処理用ライブラリのAkka Streamsを用いて、DynamoDB St

                                  DynamoDB Streamsを用いたAkka Streamsによるキャッシュ処理の実装とDynalystでのインターン | CyberAgent Developers Blog
                                • Programming in Scala, Fifth Edition

                                  If you purchase the eBook, you will be entitled to receive periodic updates as errata are fixed, for no additional charge. If you purchase a paper book, it will be shipped as soon as it comes into stock (which should take place the week of ). If you purchase the combo, the paper book will be shipped when it is published, estimated publication date is . About the book The fifth edition of Programmi

                                  • はじめに · Scala で始める圏論入門

                                    はじめに 本サイトは、圏論初心者が圏論について学びながら作成した、Scala プログラマのための入門書です。教科書は Bartosz Milewski 氏著の Category Theory for Programmers の Scala Edition で、構成も原則これに沿っています。 Scala をやっていて、圏論について知りたい・学ぶ土台を作りたいという方の参考になれば幸いです。 目次 はじめに(ここ) 第1部 1章 圏とは 2章 型と関数の圏 3章 いろいろな圏 4章 Kleisli圏 5, 6章 積と余積 7章 関手 8章 関手性 (工事中)9章 関数型 10章 自然変換 第2部 (工事中)11章 宣言型プログラミング 12章 極限と余極限 付録 表記法 Writer 圏における射の合成と、恒等射と、関手について 免責事項 ドキュメントの章構成は基本的に原文に則っていますが、省

                                    • ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ

                                      はじめに はじめまして!昨年10月に中途入社したエンジニアのおかむです。 エンジニアとしてはそれなりに長くやってきて、インフラからフロントエンドまで幅広く経験しています。 苗字が社長の岡村さん(2021年7月からは会長になります)と同じで紛らわしいため、Adwaysでは愛称で呼んでもらってます。 (実は年齢も岡村さんと同じです) 自己紹介は短く切り上げて本題に入りましょう。 以下、Scalaのサンプルコードではmdocを使っています。 はじめに ZIOとは何か 簡単なコード Map FlatMap and other combinators バリデーション エラー時のStacktrace 最後に ZIOとは何か https://zio.dev ZIOは、Scalaで作用を扱う関数型プログラミングのライブラリです。 「作用」というのはちょっとわかりづらいので、多少の語弊は恐れず「処理」と言い

                                        ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ
                                      • Scala-CLIを使うとScalaをいきなりバイナリに変換できてすごいので紹介したい - Lambdaカクテル

                                        Scala-CLIをいじっていたらかなり良さそうな機能を見付けたので紹介する。 Scala-CLI あらかじめ説明しておくと、Scala-CLIとはScalaをLLライクに扱うための便利ツールチェイン。REPLでコードを試したり、スクリプトを実行できたりする。 scala-cli.virtuslab.org 1ファイルで完結したスクリプトを書くと、依存性解決から実行まで全部やってくれるというのが非常にありがたい。RubyやPythonなどといったLLのように、強力な型安全性はそのまま、Scalaを書くことができる。 tanishiking24.hatenablog.com 本当にこれは革命的ツールチェインだ。 インストールも簡単で、JVMが動く環境でシェルで1行書けばよい。 $ curl -sSLf https://virtuslab.github.io/scala-cli-package

                                          Scala-CLIを使うとScalaをいきなりバイナリに変換できてすごいので紹介したい - Lambdaカクテル
                                        • やさしい 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 選定の結果と継続の方針 〜Advent Calendar 2016 Day 25 へのアンサー〜 - Qiita

                                            Mikatus Advent Calendar 2019 25日目の記事です。 開発責任者の土田です。 当社が2016年に参加したアドベント・カレンダー25日目の「Scala選定の理由と移行の方針」という記事へのアンサーを書こうと思います。事前にその記事を読んでいただいた方が、この記事の内容を楽しめるかなと思います。ただ、私の記事はあくまでポエムなので、そんなに期待しないでください。 プラットフォーム移行の観点でよりきちんとした内容は「Scala採用を決めて3年半たった、CTOの振り返り。アーキテクチャ刷新を成し遂げるために必要なこと」がとても参考になると思いますので、そちらをオススメします。 発端は(食べられる方の)カリーうどん → 最近は秋葉原でスープカリー 当時は当社のオフィスが白金高輪だったので、近くにあるカリーうどんを食べてました。その後は岩本町、浅草橋と移転したので食べてるカリ

                                              Scala 選定の結果と継続の方針 〜Advent Calendar 2016 Day 25 へのアンサー〜 - Qiita
                                            • 負荷テストツールGatling Tips(実践的なScalaスクリプト)

                                              Gatlingでシナリオを作成するときに、よくつかうテクニックをまとめてご紹介します。 基本的な実行方法やセットアップ方法は、こちらの記事「Gatlingで負荷テストを行う手順のまとめ(セットアップ編)」を参考にしてください。 よくつかうプロトコル設定 Gatlingでは、protocolsとして、シナリオに対する基本的な振る舞いを定義できます。 定義できる内容は、テスト対象のドメインやプロキシー、認証やUserAgentなど多岐にわたりますが、よく使うと思われるものを以下に解説します。 まずは、サンプルのソースです。 val pcAgent="Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/30.0.1599.101Safari/537.36" var httpProtocol = http

                                                負荷テストツールGatling Tips(実践的なScalaスクリプト)
                                              • 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への道
                                                • 実戦での Scala: Cake パターンを用いた Dependency Injection (DI) · eed3si9n

                                                  2011-04-23 Akka の作者として益々注目を集めている Jonas Bonér が 2008年に書いた “Real-World Scala: Dependency Injection (DI)” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2008年10月6日 Jonas Bonér 著 2011年4月22日 eed3si9n 訳 さて、実戦での Scala シリーズ第二弾の今回は、Scala を用いた Depenency Injection (DI) の実装をみていきたい。Scala は、備わっている言語機構だけを用いても何通りかの DI を実現できる非常に豊かでディープな言語だが、必要に応じて既存の Java DI フレームワークを使うこともできる。 Triental では、一つの戦略に落ち着くまで三つの異なる方法を試した

                                                  • Scalaのfor式による関数合成を「線路」で理解する

                                                    しかし、for式の役割は反復処理のみに留まりません。for式を反復処理の専用構文と捉えてしまうと、以下のコードは一見意味不明なものに見えるでしょう。 「ここで行っているのはfor式によるEitherの合成だよ」と一言で説明しても、Scalaを学び初めた人にとっては、なかなかピンとこないのではないでしょうか。 def placeOrder(unvalidatedOrder: UnvalidatedOrder): Either[OrderError, PricedOrder] = for { validOrder <- validateOrder(unvalidatedOrder) availableOrder <- checkStock(validOrder) pricedOrder <- priceOrder(availableOrder) } yield pricedOrder def

                                                      Scalaのfor式による関数合成を「線路」で理解する
                                                    • Java で Scala の Type Safe Builder パターンをエミュレートする

                                                      class: center, middle ## Java で Scala の <br/><strong>Type Safe Builder パターン</strong><br/>をエミュレートする Burikaigi2020 02/01 --- 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-left: 0px" /> * F-CODE CTO <img src="../images/f-c

                                                      • ScalaでWebアプリを爆速開発するための技術スタック 2023 - Lambdaカクテル

                                                        ScalaでなんかWebアプリをガッと作りたくなったときにどういう技術を使うべきなのか?という話です。自分はこういうふうに考えてるけどな〜というのを知見としてまとめておこうと思ってこの記事を書いています。いやいやこっちのが速いでしょみたいな話題歓迎です。なんか忘れてたらすみません。 言語 Scala3、と言いたいところだけど たま~に3使えないことがある気がしたりするので、手堅くやりたいときは2にしがちな気がする とはいえ、3使って困ったことあまりない インデント構文のせいでTAB押して補完してたのが動かなくなるみたいなことがたまにある エディタ LSP使えるエディタならなんでもいい(自分はEmacs) ファーストチョイスだとVSCodeでいいと思う IntelliJは独自のプレゼンテーションコンパイラを使っているのでちょっと勧めづらい ビルドツール sbtでいいと思う とりあえずポンでア

                                                          ScalaでWebアプリを爆速開発するための技術スタック 2023 - Lambdaカクテル
                                                        • Scalaの逆引き解説サイト

                                                          Scalaを使ってみたいけれど、複雑そう、難しそう…と使うのを躊躇している方も多いと思います。 そこで、当サイトではScalaについて無理なく学べるよう、Javaなどの周辺技術との関わりも含めてやさしく平易に解説していきます。

                                                            Scalaの逆引き解説サイト
                                                          • FOLIOでのrefined活用法 - ドメインを型で形式知化し、契約を型で表すことで認知漏れを防ぐ - だいたいよくわからないブログ

                                                            FOLIOアドベントカレンダー2021 12日目です。 FOLIOではrefinedというライブラリを採用しているので、活用事例とその目的について考えていこうと思います。 お品書きは以下です。 refinedとは ドメイン知識の形式知化 契約を型で表すことによる認知漏れリスクへの対策 プラットフォームとしてのrefined まとめ refinedとは refined はScalaでrefinement typeを表現するためのライブラリで、Haskellの 同名ライブラリ のScala版として開発されました。 refinement type(篩型, ふるい型) はざっくりいうと、「値が0以上である」とか「長さが1以上である」といった制約を型で表現し、静的に保証するための概念で、1991年にFreemanらによってRefinement Types for MLで提案されました。 利用方法 r

                                                              FOLIOでのrefined活用法 - ドメインを型で形式知化し、契約を型で表すことで認知漏れを防ぐ - だいたいよくわからないブログ
                                                            • 不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita

                                                              諸般の理由で『Pythonのlambda式を用いたラムダ計算の基礎表現』を書いた後にHaskellに触れたところ,無名再帰関数を実行する不動点コンビネータfixがとんでもなく簡単に書けたため,同じ方法で他のプログラミング言語でもできないか試したところ,これまたあっさりできたので,まとめメモ的に新しく記事にした. このような内容がQiitaや書籍,ネット上に星の数の更に星の数乗ほどあることは承知しているが,この手の話はYコンビネータが大きな割合を占めており(実際,元記事でも取り上げている),関心のある人々の数多ある参考資料のひとつ程度に捉えてもらえると幸いである.ツッコミ,編集リクエスト歓迎. 不動点コンビネータの定義 不動点コンビネータとは,$f(g(f))=g(f)$が成り立つ関数$g$を指す.この記事では,Haskellの呼称であるfixを不動点コンビネータの関数名とする. Haske

                                                                不動点コンビネータを用いた無名再帰関数の実行まとめ - Qiita
                                                              • Hands-on Scala Programming

                                                                Hands-on Scala teaches you how to use the Scala programming language in a practical, project-based fashion. This book is designed to quickly teach an existing programmer everything needed to go from "hello world" to building production applications like interactive websites, parallel web crawlers, and distributed systems in Scala. In the process you will learn how to use the Scala language to solv

                                                                • 勝又さんは関数型言語を経験するべきと言っているので、結局Scalaをおすすめするしかないと思う - スクラムマスダーの日記

                                                                  エンジニアで、YouTubeで配信もされている勝又健太さんが、「Scalaが日本で衰退し始めている理由を説明します」という動画をアップされました。 僕は、過去、Scalaを少しだけ触ったことがあります。 そのため、以前から、勉強のために、日本でトップレベルのスキルをもつScalaエンジニアの方のTwitterをフォローさせていただいていました。 勝又さんが動画をアップされた日や翌日は、そのScalaエンジニアの方が、いつもとは異なるツイートをされていました。 僕は、少し違う感じ方をしたので、今回ブログに記します。 勝又さんの動画の要約 詳しくは、Youtubeにアップされている動画を確認いただければと思いますが、ざっくり要約すると以下の通りです。 学習コストの高さによる技術的負債の進行 学習コストの高い、関数型言語が日本で普及していないから 一度右肩下がりになった言語は、過去の例を鑑みると

                                                                    勝又さんは関数型言語を経験するべきと言っているので、結局Scalaをおすすめするしかないと思う - スクラムマスダーの日記
                                                                  • 業務アプリケーションの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
                                                                    • DottyのMatch Typeを使ってコンパイル時にFibonacciを計算する - xuwei-k's blog

                                                                      見た目通りで、あまり難しくないので、特に説明することがない。 macroさえ使わずに書けますね。 shapelessにあったような色々な機能が標準で装備されています。 みなさん、Match Type使ってもっと複雑な色々な計算書いてみましょう。 ちなみに、この単純な実装だと、大きい数渡すと(コンパイル時に)大変なことになるのでご注意ください。 plugins.sbt addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.4.1") build.sbt scalaVersion := "0.26.0-RC1" Main.scala package example import scala.compiletime.ops.int.{-, +} import scala.compiletime.testing.{typeChecks, typeCheckE

                                                                        DottyのMatch Typeを使ってコンパイル時にFibonacciを計算する - xuwei-k's blog
                                                                      • How we made a financial system using Cats Effect, FS2, and doobie in FOLIO

                                                                        How we made a financial system using Cats Effect, FS2, and doobie in FOLIO

                                                                          How we made a financial system using Cats Effect, FS2, and doobie in FOLIO
                                                                        • GitHubコメントを実行してあらゆることを自動化するGitHub Actions - Qiita

                                                                          やりたいこと GitHubのissueやプルリクエストのコメントに任意のスクリプトを書いてGitHub Actionsで実行したいです。 これができると色々と自動化できます。 例えば、 プルリクをマージした時のプレビュー npmのパッケージをアップデートして自動でプルリク SSHでGitHub Actions内に入ってデバッグ Python/Ruby/Go/Deno/Scala .... 任意言語の実行 LGTMの画像をコメント ... などなどアイデア次第でGitHubコメントする手軽さであらゆることを自動化できます。 npmでもaptでもpipでもgitでも色々コメントからGitHub完結で実行できます。 できたもの comment-runと呼んでます。 GitHub: https://github.com/nwtgck/actions-comment-run 上記のREADMEにここ

                                                                            GitHubコメントを実行してあらゆることを自動化するGitHub Actions - Qiita
                                                                          • Extensible Effects: beyond the Monad Transformers

                                                                            This presentation includes these following three things: 1. Monad 2. Monad Transformers 3. Extensible-Effects Main topics are how to use atnos-eff a…

                                                                              Extensible Effects: beyond the Monad Transformers
                                                                            • CircleCIにおけるsbtプロジェクトの依存ライブラリの最適なキャッシュ方法の考察 - xuwei-k's blog

                                                                              CircleCIにおけるキャッシュの仕組みというか仕様は、他のCIサービスと比べると、少し変わった特徴がある気がします。 といっても、自分は他にはTravisCIくらいしか詳しくないので、実はCircleCIのように色々工夫している方がむしろ最近は主流な可能性もありますが、そこは本題ではないし、詳しくもなく話せないので話しません。 まずは、公式ドキュメントがしっかり書かれているので、それをざっくりと読んでみてください。 circleci.com 完全に理解する必要はないですが、ある程度読んでいる前提でこの先の話は進めます。 *1 また、以前書いた件は依存ライブラリのみならずjob(?)をまたいだときにclassファイルやインクリメンタルコンパイルの情報を丸ごとキャッシュする話でしたが、 xuwei-k.hatenablog.com 今回はあくまで依存ライブラリのキャッシュだけについて話すの

                                                                                CircleCIにおけるsbtプロジェクトの依存ライブラリの最適なキャッシュ方法の考察 - xuwei-k's blog
                                                                              • Scala におけるモナドって何だろう?

                                                                                Scala関西Summit 2019 の登壇資料です。 変更履歴 v1.0.0 v0.1.1 - init

                                                                                  Scala におけるモナドって何だろう?
                                                                                • GitHub Actionsでテストのエラーをわかりやすく表示する - たけぞう瀕死ブログ

                                                                                  CircleCIにはJUnit形式のテストレポートを食わせてテスト結果をわかりやすく表示してくれる機能があるのですが、GitHub Actionsでも同じようなことができないかなと思って調べてみたところ、以下のアクションを使えばできそうなので試してみました。 github.com 使い方は簡単で、テスト実行後にこんな感じの設定を追加するだけ。 - name: Publish Test Report uses: mikepenz/action-junit-report@v2 if: always() with: report_paths: '**/build/test-results/test/TEST-*.xml' Scalaプロジェクトの場合、sbtがtarget/test-reportsディレクトリ配下にJUnit形式のテストレポートを出力してくれるのでreport_pathsを以下の

                                                                                    GitHub Actionsでテストのエラーをわかりやすく表示する - たけぞう瀕死ブログ