Lambdaカクテル

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

Invite link for Scalaわいわいランド

Haskellのguard/<$のコンボはCatsではasを使う

覚えておきたいのでメモ。

x <$ guard (y == z)

こういう式をCatsで表現したいとき、Catsには<$$>も、そのままの演算子では存在しない。そのかわり、Catsにはasという名前で同等のメソッドがある。

typelevel.org

F[A] => B => F[B]  as

つまりこういう感じに書くことができる。

(y == z).guard[Option].as(x)

これがF[A] => F[B] => F[B]になった場合は、Haskell同様に*>が使える(同様に、<*も使える)。

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