scalaz

Bindという型クラスの存在意義

結論とは関係ない流れから解説 この前blog書いたExtendという型クラスに関する話↓ @xuwei_k extendはbindの双対ですが、bindという型クラスがHaskellに無いからじゃないでしょうか??対称性が取れなくなるみたいな理由かなと感じました。Semigroupoidへ移動…

SemiComonadもしくはExtendという、Comonadに関連するtypeclass

一言でいうと、Comonadからcopoint*1を除いたものです。 *1:またの名をextract

ScalazのEndo

@markhibberd さんの Endo の話がわかりやすかったので、勝手に日本語の説明をつけたスライドを作りました

HaskellのdoとScalaのfor式とEitherとMonadPlus

標題の通り、色々書きたいことあって長くなってわかりにくくなりそうですが、頑張って書いてみます。なお、(2.8や2.9でもほぼ同じだと思いますが)Scalaのversionは2.10.1です。Haskellはghc7.4.2です。

Scalazでモナドの合成

まず、話の前提として以下の記事とか読んでおいたほうがいいです。モナドは合成できない( Translated Tony Morris's "Monads do not compose") 合成できるモナド、モナドが合成できる時

「モナドはメタファーではない」に関する補足

日本語訳 モナドはメタファーではない 原文 Monads Are Not Metaphors原文が書かれたのはもう2年半くらい前ですが、いまだにたまにtweetされてたり、250くらいはてブがついてたり人気ありますね。で、説明中ででてくるコード例に関する補足というか、野暮な…

scala.util.Try の Monad Transformer

自分で使うつもりも、pull reqするつもりもないけど、なんとなく思いついたので、EitherTとかOptionTとか見ながら真似して作った。そもそも必要なのか自分でもよくわからない。そもそもTryがモナドじゃない?としたら、Monad Transformarと呼ぶには語弊があ…

Scalazの微妙な型クラスたち

前からこんなissueありますがWhat to do about lawless classes?

Scalaz7 nightly の Scaladoc

実はcloudbeesでCI動いていて*1、毎回Scaladoc生成されています最近止まってしまったみたいです・・・https://scalazproject.ci.cloudbees.com/ https://scalazproject.ci.cloudbees.com/job/nightly_2.10/ws/target/scala-2.10/unidoc/index.html#scalaz.pa…

Scalaz の名前の由来

https://gist.github.com/tonymorris/5367920超適当に要約すると

Scalazで新しいtypeclassを追加する手順

coreに追加する場合の話 例としてHogeというtypeclassを追加する場合なにか手順抜けてたら教えて下さい。自分でも気づいたらあとで追記します

Json4s Monoid Instance

https://github.com/xuwei-k/json4s-monoid/blob/b81187378f62f/src/test/scala/Spec.scala上記は正しい例。以下はMonoid則を満たさない例 implicit def JValueInstance: Monoid[JValue] = Monoid.instance(_ merge _, JObject(Nil)) implicit def JValueIns…

ekmett と scalaz

ekmett 勉強会やろう(提案)2013-03-14 23:17:22 via Janettertwitter上でいろいろあってekmett 勉強会 開催決定! 「ekmett勉強会だがHaskell勉強会とは書いてない」「ekmettはScalazのコミッターである」「ekmettは、実はgithub上にScalaのリポジトリがい…

Play2.1のfunctional packageのApplicativeを使う

Play2.1内部に、独自の Functor URL とか Applicative URL とか Monoid URL が追加されていて味わい深いですね・・・2012-11-18 01:16:51 via webというわけで、Play2.1から独自のFunctorとかApplicativeとかAlternative(ApplicativePlus)があるので簡単にOp…

Haskell の partitionEithers を(汎用化したものを) Scala で

Haskell の partitionEithers っぽいものが欲しくなって、ググッたらこれ URL にたどり着いたけど、この議論の結論(現状のScalazに存在するのか?など含めて)がよくわからない・・・あとでゆっくり読むか・・・2013-01-28 16:09:29 via web結局現在のScalaz …

Unboxed Tagged Types の落とし穴

ご存知の通り(?)以下のような血みどろなマサカリが飛び交っていましたがtwitter の bijection というライブラリの名前問題まぁその話の本体についてはおいておいて、その副産物というか、そのpull request欄のコメントにて、面白い有用な話を見つけたのでメ…

Scalaz の EphemeralStream

Scalazに関して、わりとtypeclassについてばかり書いていた気がするので、たまにはデータ構造の話を。Scalazには、結構昔から(Scalaz6の頃から) EphemeralStream というデータ構造があります。https://github.com/scalaz/scalaz/blob/v7.0.0-M7/core/src/mai…

Monad Transformers Step By StepのHaskellコードを途中までScalaz7に訳した

http://www.grabmueller.de/martin/www/pub/Transformers.en.html http://bicycle1885.hatenablog.com/entry/2012/12/08/165236 途中までやったけど、その先わからなかったので、誰か・・・

Scalaz7 Typeclasses Law

これは Scalaz Advent Calendar 2012 の21日目です。

Scalaz におけるテストについて(その1)

これは Scalaz Advent Calendar 2012 の23日目です。

scalaz-contrib と scalaz-specs2

これは Scalaz Advent Calendar 2012 の19日目です。

Scalaz の Syntax という仕組みの解説

これは Scalaz Advent Calendar 2012 の17日目です。追記:タイトルとりりろじさんのtweetの引用のあたりを突っ込まれましたが、今から変えるのもあれなので、そのままにしておきます。*1 こっちも読みましょう。 *1: 言い訳 https://twitter.com/xuwei_k/sta…

Scalacheck の Arbitrary.scala を scalaz の Applicative を使って書き換えてみる

これは Scalaz Advent Calendar 2012 の16日目です。

Scalazをいつでも簡単に試せるようにしておく方法

Scalaz_Advent 2012 の14日目その2ですscreplをインストール*1 *2してhttp://www.scala-sbt.org/release/docs/Detailed-Topics/Scripts.bash_profileとかなんでもいいですが alias scalaz='screpl org.scalaz%%scalaz-core%7.1.5'と登録しておきましょう。こ…

Scalaz 7 の短縮URL

Scalaz_Advent 2012 の14日目のその1ですhttp://git.io/scalaz7 以前作ったので、お使いください

Scalaz に Monoidal を実装してみた

まだ10日だけど、これを Scalaz_Advent 2012 の 11日目 にしてしまっていいんじゃなイカ? typeclassopediaの日本語訳 ではなく、 Haskell wiki にある英語のほう http://www.haskell.org/haskellwiki/Typeclassopedia を読んでいたら、日本語訳したのはもう…

自分の今までの #Scalaz への merge された pull request が18回になってた件 #scalaz_advent

この記事は、 Scalaz Advent Calendar 2012 の8日目です。タイトルのとおり、気がついたらこれを書いている時点で今まで(mergeされたものだけで)合計 18 回も送っていたので、それらについて淡々と説明します。 ほかのプロジェクトにも細かいpull requestは…

Scalaを使っている海外企業とエンジニアの紹介

昨日のあれ URL 思ったよりは人気出たがなんだろう。後半が良かったのかなんなのか。あの辺りの海外のプログラマ事情追ってる人は少ないのはわかるけど、調べるのが面倒(というかよっぽど観察してないと無理)なだけで、興味ある人はある程度いるってことかな…

Start Haskell に行って、Scalaの話をしてきた

http://partake.in/events/c18d7583-75b8-45e9-990d-041215c1fe29 http://xuwei-k.github.com/slides/haskell_scala 吉田さんのスライド何が主題とかなくて書きたいことを書いたみたいになってるけど、これスカラの勉強会なら兎も角ハスケルの初心者向け勉強…

Tony Morrisさんの"Monads do not compose"を訳した

これ↓ https://gist.github.com/3769691