Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

2022-06-01から1ヶ月間の記事一覧

プログラミング言語の高度な抽象化機能の主戦場は「テスト」なのかもしれない

同僚のコードをレビューしていると、たまたま複雑なロジックを使っている箇所を修正していて、付随するテストもけっこう複雑だった。APIレイヤのテストなので、JSONのスタブを書いてその通りに帰ってくることを確認する、みたいな作業を何度もやらなければな…

Shapelessの勉強(その4)

追記: Shapeless入門を記事にまとめました www.3qe.us 今日は、これまでに学習してきた Genericを拡張した LabelledGenericについて学習していく。これによって、型レベルでフィールド名や型名を扱う事ができるようになり、Shapeless が扱える処理の範囲がさ…

だが不思議であり怖いのは、意義を感じながらやっていると、突然ぽっかりと穴が空いて、水を張ったガラスの器が床に落ちて砕け散ってしまうように、折れてしまうことが、予告無しに起こることだ

眠れないとき、同時に眠りたくないという感情も発生しているらしいことに気付いた。眠ってしまうと何かを喪失してしまうので、眠ろうという気にならない、ような。 じゃあどうして眠りたくないのかというと、自分が全然前に進んでいないような気がするから。…

文字が持っていたフィクション性の終焉

インターネットをしているとしばらくぼんやりした気分になってしまうことがある。それ自体はよくあることなのだが、自分の脳というか意識がどこに属しているのかが気になってきた。おそらく脳は自分がどこに属しているのかを知っていて、現実よりもより現実…

型付きのタスク同士の依存関係を解決するソルバは書けるのか その1

こういう話題: 今日 @yigarashi_9 と会話してて、「相互に依存し合ったタスクの集合からグワッとDAGを生成してトポロジカルソートして一つずつ解決していくみたいなパターンあるよね」みたいな話をしたけど、なんか名前あったっけみたいなモヤモヤが、ずっと…

ScalaTestでテストをIgnoreする方法いろいろ

開発していると、「テストが落ちるけど一時的にマージしたいからテストを通したい」ということがたまにある。そういうときにScalaTestではどうするのかについて調べてみた。 テストスイートごとignoreする 個々のテストをignoreする AnyFlatSpecを使っている…

(追記あり)CatsでReaderになるfunctionをいい感じに合成したいけど微妙

tl;dr (f, g) mapN (_ compose _) しましょう f -> g mapN (_ <<< _)って書くとちょっとかっこいい つづき 最近ずっとCatsの記事を書いているな…… 先日、(->) r がApplicativeになるという話をした。 blog.3qe.us んで、この(->) rが2つあるときに、これらを…

(追記あり)ScalaのMapをmapしてkeyが衝突するのを回避する方法

MathJax = { tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]} }; ScalaにはMapというデータ構造があり、辞書を表現している。 val m = Map("windy" -> "melt", "fizz" -> "buzz") m("windy") // => "melt" そして、Mapにはmapメソッドが生えていて、KeyとV…

Linux 設定 プログラマーのおすすめ (X11 + GNOME編)

kazuhi-ra.hatenablog.com こういう記事を見たので、普段開発にLinux (OpenSuSE Leap) を使っている自分も同様のことをしておこうかなと思ったのでシェアします。自分もキーリピート上げておきたいなと思ったのが直接のきっかけです。 マウスポインタを最大…

(追記あり)List[Monoid]同士を垂直結合させるためにMonoidを作る必要はなかった・・・

モノイドからなるリストのリストを垂直に結合したい。 tl;dr 「ZipListってのがあるよ」 順にやってみる Parallel登場 追記 まずは下準備: import cats._ import cats.implicits._ // こいつらをぜんぶくっつけたい val xs = (1 to 9).toList // xs: List[In…

(Scala) MetalsのWorksheet気持ち良すぎだろ!

みんなScala書いてる?ScalaはJVM言語なのでコンパイルが当然必要なのと、sbtを起動するのがちょっと面倒で試行錯誤が大変なんだよね。 Scastieっていう便利なオンラインREPLもあるんだけど、もちろんちょっと時間がかかるし、IDEじゃないから補完とか効かな…

List[Monoid]同士を垂直結合させるようなMonoidが欲しいので作った

追記: 解決編から見よう blog.3qe.us 最近型クラスまわりで遊んでいて、ちまちま応用例を見付けられているので嬉しい。 今回は、モノイドのリスト同士を結合することについて考えていきたい。 まずは下準備: import cats._ import cats.implicits._ val xs =…

Monocleというライブラリについて軽く調べたメモ

最近は Scala 周りのライブラリをよく勉強していて、ShapelessやCatsについて勉強する事が多い。 ところでMonocleというライブラリも気になっていたので、Shapelessの勉強の息抜きに軽く調べることにした。 Monocleとは Monocleをインストールする Monocleの…

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?