haskell

Scala版optparse-applicativeをforkしてscala-jsとscala-native対応してリリースした

タイトルの通りでそれ以外あまり書くことないのですが、リリースしました github.com

MonadFailという型クラスがHaskell標準になるぞ

https://github.com/ghc/ghc/commit/8c80dcc166e4a083086d8b2めでたい

Typeclassopediaに足りない型クラス

挙げようと思えばいくらでも挙げられるとは思うけれど、とりあえず自分が思ったものをいくつか挙げておきます。

scalaz.Leibnizの名前の由来

scalazに限らずHaskellもしくはCoqなどの定理証明系の言語の文脈でもLeibniz Equalityという言葉出てくると思いますが、その話

Divisible型クラスやそのメソッドの名前の由来

数日前にDivisibleなどのことを書きましたが、その名前の由来について、気がついたことをメモ。

ContravariantやInvariantなApplicativeとscalaz.Equal, Orderとscalaprops.Cogenと各種シリアライザ―(scodec, argonaut, play-json, msgpack4z)

タイトルにわざと色々詰め込んでとても長くしてみましたが、一言で言うとContravariantなApplicative使うとそれらが共通化出来て便利なことに気がついたのでpull reqしました。という内容です。

昔のQuickCheckのArbitraryにはcoarbitraryメソッドがあった件

標題のことに今更気がついて、少し想定外だったので、それをメモするだけのものです。

Scalaでのtagless final

ひたすらググって見つけたのをメモするだけのエントリ

Free PreArrow

せっかく書いたので、とりあえず貼っておく。 とくに解説も結論もない

ekmett先生のdiscriminationというライブラリの動画を見たので雑に要約してみた

本当に雑に(前半部分だけを)まとめただけなので、ちゃんと知りたい人は、元動画やライブラリのコードや、元論文読むとよいです

関数型Scalaという勉強会でproperty based testingについて話をした

Scalaの勉強会で半分くらいHaskellの話してすいませんでした。http://xuwei-k.github.io/slides/scalaprops/

Free MonadPlusはFree Monad TransformerにListを当てはめたもの?

Free MonadPlus調べようとしてtwitter検索してたらGabriel Gonzalezセンセのtweetをみつけたので

"MonadPlusは単なる自己関手の圏における近半環だよ。何か問題でも" の理解を試みる

それほど数学の素養ない筆者が、論文を斜め読みして「理解を試みてみた」記録です。最低限の雰囲気だけ説明してみるけど、雑だし正確な言い方もしないので、ちゃんと知りたい人は最初から元の論文を読もう。 といういつものような注意書きを書いておきます。

最近読んだ論文

以下のtweetしたように、最近それなりに、(主にHaskell関連の)論文読んでるのだけれど

本物のFree MonadPlus?

「もう一度来てください。本物のFree MonadPlusを見せてあげますよ」 そう言い残してScalaちゃんは去っていった・・・。

"Theorems for free!"とParametricityとJVMとCLRのジェネリクスの実装の違いの関係

という題だけ思いついて、中身を書ける気がしないので、誰か書いて欲しい(他力本願)

scalaz.ListTはモナドではないのでscalaz.StreamTを使おう?

http://togetter.com/li/800229togetterのまとめ内でも言ってますが、直そうとしてもスタック溢れる残念なものにしかならなそうなので、このままかなぁ・・・。 かといって、StreamTも場合によってはスタック溢れるっぽいですが。 スタック溢れる残念なもの…

Freeモナドを抽象化?した究極のモナド「Idealモナド」がScalaでも作れたよー

以下のfumievalさんの記事に遅れること約2年・・・、ついにScala界隈にも、究極のモナド(?) Idealモナドが誕生した。

CoArbitraryとScalacheck

https://github.com/rickynils/scalacheck/issues/136CoArbitrary的な何かを実装するかもしれないらしいです

関数プログラミング実践入門

著者の人と直接的な面識はそれほどない(twitter上では知ってたし会話したことあるはず)のに、ある日突然この本(の電子書籍版)いただきました。ありがとうございます! というわけで、頂いてから結構期間空いてしまって申し訳ないんですが、感想書きました。 …

shapeless.TypeClassとGHC.Generic

twitter便利ですね。作者からリプライきました

代数的データ型とshapelessのマクロによる型クラスのインスタンスの自動導出

これは、ドワンゴ Advent Calendar の 7日目です。6日目は DartのASTを触ってみる でした。

2014年10月現在のHaskell環境構築方法

とりあえずチャットで教えてもらったのを全部貼り付け

ekmett/trifecta内部のItというデータ構造について

作者からreplyきたぞい。けどイマイチ納得できてないので、もうちょっと考えてみている tgtr.ExtendWidget({id:'728945',url:'http://togetter.com/'});

Scalaにおいて一番関数型というかHaskellっぽいコマンドラインオプション解析のライブラリ

それほど色々試したわけではないけど、数日前に良さそうなやつが登場したので貼っておく

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: …

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

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

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…

issue報告したらFree MonadPlusが消えた

https://github.com/ekmett/free/issues/38 https://github.com/ekmett/free/commit/69e35adf0bee1

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