scalaz

ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法

組み合わせるとはつまりアレのことを書くのですが、一応それほど前提知識無くても理解できるように書いてみます。さて、なぜいきなりEitherとFutureか?というと

Functional Programming in Scalaはオススメできる唯一のScalaの本 by アルパカの人

Functional Programming in Scala is the only scala book I have ever seen which I can recommend without reservation.2014-09-11 00:05:21 via Tweetbot for Mac

scalaz7.1とspecs2の2.4より前のversionおよびplay2.3以前のテストモジュールはバイナリ互換ないので同時に使えません

結構Scalaz勉強会でここ強調して言ったつもりだったけど、1日で2人もハマってる人みかけたので

Scalaのマクロ使ってコンパイル時に全部Applicaiveをインライン展開するzeroapplyというライブラリを作った

https://github.com/xuwei-k/zeroapply

Scalaz 7.1.0 final がリリースされました!

https://groups.google.com/d/msg/scalaz/79x3Frhe0Hs/tcGACPaXND8Jこの前のScalaz勉強会で、6、7.0.x、7.1.x、7.2.xについての説明はそれなりに詳しくやりましたが、

Functional Javaの発表してきた

自分の発表資料 http://shibuya-java.connpass.com/event/7060/

shapelessのHListとScalazを組み合わせて23要素以上のcase classのPlay2のJsonのReadsを作る

「Scala2.11になっても、23要素以上のcase classを直接jsonにマッピングとかできないの!」とお怒りの皆さんこんばんは。タイトル長いですね。 タイトル通りのもの作りました。こちら完成品のサンプルコードですhttps://github.com/xuwei-k/play2-json-twent…

Scalaz勉強会を開催しました

資料一覧 toggetterまとめ ニコ生

HaskellのGADTsすごいなーと思ったのと、それをscalaz.Leibniz使って頑張る話

まず、下記の10行程度のScalaコードをご覧ください sealed abstract class Foo[A, B] final case class X[A]() extends Foo[A, A] final case class Y[A, B](a: A, b: B) extends Foo[A, B] object Main { def hoge[F[_, _], A, B, C](foo: Foo[A, B], bar: …

Scalaz勉強会をやります

http://connpass.com/event/7261/

ScalazのTagged Typeに関する重要な変更

https://github.com/scalaz/scalaz/pull/693tagged typeとは、Haskellのnewtypeみたいなやつです。

macro annotationを使って、operational monadのためのメソッドをコンパニオンオブジェクトに自動生成

できた気がするhttps://github.com/xuwei-k/twitterz/commit/b1d8201 https://github.com/xuwei-k/macro-annotation-sample/commit/47896fc1c0

Free MonadとInject typeclassでtwitter4jをラップしてみた

https://github.com/xuwei-k/twitterz

CoproductとInjectを使ったFree Monadの合成とExtensible Effects

Scaladays2014の写真がtwitter上で流れてきて「あーまたrunaroramaさん、Free Monadの話してるのかー」と思ったら、たしかにFree Monadの話もしてたみたいですが、それの発展形(?)的な感じで、Coproductや、Injectという型クラス(?)の話をしていたようです。…

argonautのmacro書いた。そしたら添削してもらった

以前書いたこれコンパイル時に、 String を lift json に変換する macro https://github.com/xuwei-k/json_macro

Scala2.11.0対応で色々と自分のライブラリをリリースしたりpull reqしてる(scalaバージョン上げ手動botさん)

それぞれ、sonatype経由でmaven centralにpublishしてます。もうScala2.11.0でも使えるようにcross buildしてます。2.11.0対応以外にも、最近は地味に(ここに書いた以外にも)自分のライブラリ細かくリリースして、tagつけてpublishしてるので、もし良かった…

WriterTはアンチパターン

I wish the `transformers` library had a RWT (ReaderT + StateT) monad transformer. WriterT is an anti-pattern.2014-04-09 12:17:20 via Twitter for Android @GabrielG439 why is it an anti-pattern?2014-04-09 12:22:13 via Echofon to @GabrielG439…

Scalatraの今後とhttp4sとscalaz-stream

適当につぶやいてたら、mentionきていつもどおり(?)ビビりました。

httpzというAPIクライアントライブラリを作るためのライブラリを作った

https://github.com/xuwei-k/httpzzというのは、特にいい名前思いつかなかったので、Scalaz的にとりあえずz付けておけばいいか、とかそういうノリです。

argonautのコミッターになった

さっきこんなmentions https://twitter.com/markhibberd/status/441801961474498560 がきてた。めでたい

ghscala 0.2.5 リリース

例のOperational Monad使ってるGithub APIクライアント。なんか数日に一回のペースでリリースしてる。https://github.com/xuwei-k/ghscala/tree/v0.2.5

ScalaでOperational Monadを使って作ったAPI clientの内部実装の解説

気が向いたら書く、と言っていた解説を書きます。Operational Monadを使用した最初のversion0.2.0を出してから、色々機能追加したり試行錯誤したりして、結構変わっています。その辺りの試行錯誤や経緯も少し含めて、内部の実装や設計の説明を書きます。http…

Scalaでoperational monad使ってgithubのAPI client書いてリリースした

https://github.com/xuwei-k/ghscala

Scalacheckで無理矢理クラス毎にパラメータを変える

Scalacheckのversionは1.11.3です。 あくまでも無理矢理です。

関数型RubyとScalaとKleisli

以下のエントリ「関数型Ruby」という病(6) - 関数合成と文脈、Proc#liftとProc#>=、そしてモナに便乗して、(一部の例を)Scalaに翻訳してみるのと、ScalazのKleisliの話をします。Scalaや関数型に興味のない人は読まないほうがいいかもしれません。わざとMona…

デブサミ2014「OSSコミッタ大集合」というので登壇してきた

http://event.shoeisha.jp/devsumi/20140213/session/394 https://docs.google.com/presentation/d/1eh7fMYMEUA1CriyUxay4wkYaWtnxLkg0l4jtd9CXLv4/htmlpresent http://togetter.com/li/628956

HaskellコードをScalazに翻訳することにより、またekmettライブラリのバグを見つけたかもしれない(1ヶ月半ぶり3回目?)

https://github.com/ekmett/free/issues/38 https://github.com/ekmett/free/blob/v4.4/src/Control/MonadPlus/Free.hs#L143-L156

Scalaで、FutureやOptionやListがネストしてしまったときに、いい感じに変換する方法

Optionで説明してますが、ListやEitherでも同じはずです。とりあえずsequenceとjoinで、どんなにネストしていても、大概変換できるはず? *1 *1:パフォーマンスとか、sequenceの呼び出し順による、細かい動作の違いとかはあれですが。もし似たような感じで困…

ScalaでOperational Monadできた

3ヶ月くらい前に、途中まで書きましたがScalaでOperational Monad(未完成)あらためて続きをやってみたらできましたヤッタ-。

Scala標準ライブラリのParserとScalazとMonadとApplicative

以下の記事http://qiita.com/septagon/items/33c26823e8078c9605eeを見て、「あ、モナド必要ないのにfor式使ってるパターンだ」と思ったので