タグ

scalaに関するaritekuのブックマーク (65)

  • Essential Scala 輪読会 - Qiita

    Essential Scala 輪読会の開催にあたってのメモ。 事前準備 「Essential Scala 輪読会」に参加する前にやっておくといいこと。 書籍をダウンロードする Essential Scala は Underscore Consulting LLP という会社が公開している Scala の入門書。下記の URL から無償でダウンロードできる。 Scala をインストールする Scala の REPL があると Essential Scala に付属しているサンプルコードや課題などを実行できる。輪読会の空いた時間で課題をやるのでインストールする。 macOS なら Homebrew からインストールするといい。

    Essential Scala 輪読会 - Qiita
  • scala - Scala:型クラスとADTの違いは?

  • Freer Monads, More Extensible Effects

    PPL 2016 における講演。Haskell Symposium 2015 で発表した Kiselyov & Ishii の同名論文の解説スライド。

    Freer Monads, More Extensible Effects
  • GitHub - softwaremill/tapir: Declarative, type-safe web endpoints library

    With tapir, you can describe HTTP API endpoints as immutable Scala values. Each endpoint can contain a number of input and output parameters. An endpoint specification can be interpreted as: a server, given the "business logic": a function, which computes output parameters based on input parameters. Currently supported: Akka HTTP Routes/Directives Http4s HttpRoutes[F] Netty Finatra FinatraRoute Pe

    GitHub - softwaremill/tapir: Declarative, type-safe web endpoints library
  • Scalaにおける値型(列挙型、Beans)の表現 - Qiita

    Scala Design Patternsを読んでいたところ、Scalaにおける値型(列挙型, Beans)の自然な表現が紹介されていたので、まとめました。 値型とは? 値型とは、メソッドを持たず、値のみを保持するオブジェクトのことです。 ここでは値型として、列挙型とBeansを紹介します。 sealed abstract trait Weekday case object Sunday extends Weekday case object Monday extends Weekday case object Tuesday extends Weekday case object Wednesday extends Weekday case object Thursday extends Weekday case object Friday extends Weekday case ob

    Scalaにおける値型(列挙型、Beans)の表現 - Qiita
  • AirframeによるScalaプログラミング:「何ができるか」から「何を効果的に忘れられるか」を考える

    、MessagePackを使う利点は、以下の3つ: 様々なデータフォーマットに対応できるコンパクトなバイナリ表現Self-describing format (データ自身が型を持っている)ため、種々のフォーマットからオブジェクトへのマッピングをschema-on-readのテクニックで実装できるまた、オブジェクトデータをデータフォーマットを気にせずに手軽に保存できるというのは、計算の再利用、プログラムの再開などを可能にしてくれるので、複雑なデータ処理において強力な武器になります。 要点その2: AirframeにはDependency Injection (DI)のためのライブラリがありますが、DIを理解するには、「何ができるか」ではなく、プログラミング中に「何を忘れることができるか」が大切です。

    AirframeによるScalaプログラミング:「何ができるか」から「何を効果的に忘れられるか」を考える
  • Monix vs Cats-Effect

    Monix vs Cats-Effect 20 Mar 2018 • @alexelcu I’m the author of Monix and a major contributor to Cats-Effect. This post describes the relationship between Monix and Cats-Effect, their history and when each should be used. But to start with the most pressing concern … Monix’s Task vs cats.effect.IO # cats.effect.IO and monix.eval.Task are very similar, plus I ended up working on both, so design deci

    Monix vs Cats-Effect
  • Specs2 から ScalaTest への移行ガイド | DevelopersIO

    Scalaプログラムのユニットテストを記述する場合、これら2つが候補にあがると思います。記事では両者の比較や長所・短所への言及はしません。ユニットテストのシチュエーションごとに、Specs2 と ScalaTest のテストコード例を示し、おたがい書き換える際のたすけとなることを目的としています。 バージョン情報 ライブラリ バージョン Specs2 と ScalaTest の大局的な観点での違い 典型的なユニットテストを記述する分には、両者ともその能力にほとんど違いがありません。私が Specs2 から ScalaTest へ移行する際に感じた違いは以下のようなものです: Specs2 では同梱されている mock コンポーネントを利用するのに対し、ScalaTest ではJava製の Mockito を利用する Specs2 では同梱されている matcher コンポーネントを利用す

    Specs2 から ScalaTest への移行ガイド | DevelopersIO
  • Play Framework による API 開発 – ビルド定義入門 - 行灯Labo(アンドンラボ)|JapanTaxi採用ブログ

    はじめまして。開発部 SRE チームの相田です。この記事では JapanTaxi 内の Scala技術情報について紹介します。 記事の要旨 Play を採用する場合は最初からマルチプロジェクト化しよう 導入時は公式ドキュメントの記載を鵜呑みにしないように注意 デフォルト構成の確認 まずは 公式ドキュメント の手順に従って sbt new を走らせてみます。 $ sbt new playframework/play-scala-seed.g8 対話的にプロジェクトの情報を聞かれるので適当に答えておきましょう。 (ここでは name と organization を変更しました。) $ sbt new playframework/play-scala-seed.g8 This template generates a Play Scala project name [play-scala-

    Play Framework による API 開発 – ビルド定義入門 - 行灯Labo(アンドンラボ)|JapanTaxi採用ブログ
  • 確率モナドを使ったMCMCサンプラーをScalaで実装してみる (改) - Qiita

    一度、会社のブログに書いた内容なのですが、直したい部分があったため書き直しました。 ここで書いている内容はとりあえず動けばいいというスタンスで実験的にコードを書いていました。最近、以下のrepositoryで実装し直しています。stanzという名前はもともとstanっていう統計モデリングをDSLで書けるツールがあるので、最後にzをつけた感じです。純粋関数型で実装されたライブラリは最後にzをつけることがあるみたいな? https://github.com/sdual/stanz はじめに 関数型言語において参照透過性が保たれるためには、ある値を代入された関数はいかなる場合でも同じ値を返さなければなりません。しかし、確率的事象を扱いたい場合には確率に従って毎回異なる値を返してしまうため、その性質が壊されてしまいます。離散確率については取りうる値の数が限られているため、それぞれの事象とその確率を

    確率モナドを使ったMCMCサンプラーをScalaで実装してみる (改) - Qiita
    ariteku
    ariteku 2017/12/08
    かっちょええ。
  • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

    DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

    Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
  • embulkのpluginをScalaで作ってみようと思った時の備忘録 - 日頃の行い

    Embulkのpluginを書いてみようかなと思ったんですが、せっかくならScalaで書いてみようかなと思ってその時の備忘録です。 1. 概要 Embulkはこんな感じ(雑 github.com pluginはJavaRubyで書けるようです。 Javaで書けるので、Scalaでも書けますね。 2. 準備 2.1. pluginの作成 色々ためしたレポジトリはこんな感じです。 github.com とりあえずJavaでpluginを書く準備をします。 利用したEmbulkのversionは 0.7.4です #embulk コマンドはインストール済み前提です。 $embulk --version embulk 0.7.4 $embulk new java-input myappwithscala ... $cd embulk-input-myappwithscala $tree -L 3

    embulkのpluginをScalaで作ってみようと思った時の備忘録 - 日頃の行い
  • Scala + Sbtでデーモンを作る方法

    サーバーで動作を行うデーモンを、Scalaで書きます。 なお、環境はRHEL系のLinuxで動作を確認しました。それ以外のOSの方は 適宜読み替えてください。 また、ビルドなどはsbtを利用するので、「始めるsbt」などを読んでおくと いいと思います。 1.Scalaのコードを書く 1.1 参照の追加 sbtを使ってアプリを構成します。今回、ApacheCommonDaemonを利用するので、 build.sbtに次のように参照を追加します。 1.2 Scalaのコードを書く Daemonインターフェースを継承したクラスを書きます。 今回は次のようにしました。 一応、例外を明示的に投げるように書いておいています。 1.3 実行可能ファイルを作る sbt-assembkyを使って実行可能なjarファイルを用意しました。 sbt-assemblyについては、こちらの記事を参照してもらえると嬉し

    Scala + Sbtでデーモンを作る方法
  • Play 2.3 new validation API

    The API is still a draft and may change before the release of Play 2.3 @mandubian and I talked about this Architecture and general and the new validation API at pingconf in January. You may want to skip the first 30 minutes, and jump directly to the API. This article sums up what we said there, and explore the validation API a bit deeper. Why validation ? When you think about a web application, yo

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

    dfltweb1.onamae.com – このドメインはお名前.comで取得されています。
  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
  • 暗黙の型変換(Implicit Conversion)のお話 - 独学大学情報学部

    この記事はPlay or Scala Advent Calendar 2012の18日目です。 何か作ってみるとか言いながら解説記事になりました(謝 総力尽くして色々解読してますが、補足・間違い等ありましたらご指摘ください。 暗黙のパラメータ(Implicit Parameter)についても一緒にまとめようと思ったけど、長くなりそうだったので省きます...。 そもそも何なのこの機能 語弊も承知で言うならば「コンパイラが勝手にやってくれる型キャストみたいな機能」 です。こりゃ確実に刺されますね、はい。 もう少しちゃんと説明すると、Scalaのコンパイラは型の不一致によるエラーを検出した際に悲鳴をあげる前にスコープ内のimplicitキーワードで定義されたメソッドを用いて解決を図ります。もし、解決出来る場合はそのメソッドを自動的に挿入して実行に移ります。 既存のライブラリ直接弄ることなく拡張で

    暗黙の型変換(Implicit Conversion)のお話 - 独学大学情報学部
  • Monocleとかいうのがありまして - 独学大学情報学部

    この記事はScala Advent Calendar 2014の22日目です。 日付変わっちゃいました、すみません。 今回はちょっとMonocle触ってみました。 Monocleとは Julien Truffaut氏がメインで開発してるScalaでLensなライブラリです。 最新安定版はv1.0.1(2014.12.22 現在)で、つい先日リリースされたばかりのピチピチです。 Just published Monocle 1.0.1, here is the release note: https://t.co/HqBy4ARuC1 and some benchmarks https://t.co/XkeC7VVI1M— Julien Truffaut (@JulienTruffaut) December 18, 2014 もともとはHaskellのLensパッケージがあって、それをSca

    Monocleとかいうのがありまして - 独学大学情報学部
  • Scala Implicits: 型クラス、襲来 · eed3si9n

    2010-11-03 Debasish Ghosh さん (@debasishg) の “Scala Implicits : Type Classes Here I Come” を翻訳しました. 元記事はこちら: http://debasishg.blogspot.com/2010/06/scala-implicits-type-classes-here-i.html (翻訳の公開は人より許諾済みです) 翻訳の間違い等があれば遠慮なくご指摘ください. 先日 Twitter 上で Daniel と Scala での型クラスについて論議していると,突然このトピックに関する書きかけだった記事を発見した.これを読んでもあなたは特に目新しい事を発見するわけではないが,型クラスに基づいた思考はあなたの設計の幅に価値を与えることができると思う.この記事を書き始めたのはしばらく前に設計の直交性についての

  • 怖いScala

    無職\(^o^)/ もう少し無職楽しむつもりだけど、なんとなく関数型言語書いて金貰えるような仕事ないかな・・・ 今年の前半は働いてたけど、去年の今頃も無職だった 暇だからScalazにひたすらpull req送る 気づいたらコミッターになっていた((((;゚Д゚))))!? 2013年11月現在、コミット数3位(コミットした行数では7位くらい。つまり細かいコミットが多い)