scalaz

Scalazのscaladoc内のjavascriptファイルが数MBあって巨大で遅い件について考えた

さきに結論: sonatypeに自動でjavadocやscaladoc展開する機能あるけど、なにも最適化されてなくて遅い。javadoc.ioはキャッシュやgzip圧縮対応されてるのか速い

Scalazのscala-native対応

scala-nativeの0.1がリリースされる(maven centralにはもう上がってる)らしいです。 scala-nativeとは、ScalaをJVMではなくLLVM使ってJVM以外で動かすやつです。 https://github.com/scala-native/scala-native さて、というわけで、scalazを早速対応させま…

kind-projectorにscalaz.NaturalTransformationなどを短く書ける機能(polymorphic lambda)が入った件

アルパカさんありがとうございます!

Scala2.12になるとscalaz-coreのjarサイズが半分になる

めでたい!!!

scalazのIMap更新したい話

更新したいのは厳密には自分ではないが(?)、とりあえず現状の考えまとめる

scalazとscalapropsとmsgpack4zを全部Scala.js対応した

やっと出しました。めでたい

Cogenが入った新しいscalacheckがリリースされたけれどバグってるみたいだし我慢の限界なのでscalazの全てのテストをscalapropsベースで書き換えたい件

https://github.com/scalaz/scalaz/issues/1096 https://github.com/scalaz/scalaz/pull/1095 https://github.com/rickynils/scalacheck/issues/218

ScalaMatsuriでApache KafkaとScala.jsとScalazの話をした

資料貼り付けるだけの何か

継承ではなくself typeを使って型クラスの関係を表現する

https://github.com/xuwei-k/scalaz-prototype

Scalaz 7.2.0 finalをリリースしました

はい、リリースしました。めでたい。

scalazに関する日本語ドキュメントを書いている

これはScalaアドベントカレンダー2015(adventar版)の2日目です。http://www.adventar.org/calendars/904

case class用のscalazのEqualとOrderのマクロ作った

だいぶ今更感ある

extension typeをサポートしたmsgpack4zの0.2.0をリリースした

個人的にはextension type使う予定ないというか好きじゃないけど、なんとなく対応させてリリースしました

Scalaでstack overflowしないFree Monad TransformerやFree MonadPlus

以前いくつか関連したもの書きましたが

Scalaでtraitにメソッド追加するとバイナリ互換壊れるけどabstract classだと壊れないという例

プログラマなら論よりコードで示すべきですよね (英語力ないだけです、すいません)

scalazのEither(Disjunction)のorElse

以下のpull reqの意味が最初よくわかってなかったのだけど、さっき試して理解したのでメモhttps://github.com/scalaz/scalaz/pull/1021

そろそろscalaz 7.2 の final 出すぞ!

https://github.com/scalaz/scalaz/issues/1029

Scalaでバイナリ互換を維持しながらのプロジェクト運営

json4sでせらさんが頑張ってくれるらしいけど、どこにも(たぶん英語でも)まとまった知見ないはずなので、とりあえずscalazの知見をもとに、まとめておく

Typeclassopediaに足りない型クラス

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

scalaz.Treeとカタラン数。そして代数的データ型とzipperと微分

1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900・・・ という数列を知ってますか?カタラン数と言うらしいです。

関数プログラミング交流会という勉強会で"Scalaにおける関数型並列並行プログラミング"という話をした

ほぼ資料貼り付けるだけのエントリ。広く浅く話しただけで、それほど新しい情報とかあるわけではないです

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しました。という内容です。

Scalaでのtagless final

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

Free PreArrow

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

関数型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をみつけたので

本物のFree MonadPlus?

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

scalaz.ISetの木構造を可視化してみる

scalazのISetとは、Haskellの標準ライブラリのSetを移植したやつです。二分木です。

"-Yno-generic-signatures"というScalaのコンパイルオプションとバイナリ(jar)のサイズ

generic-signatureというもの(リフレクション経由でしか取得できない何か?)が、必要ないなら、コンパイルオプションに"-Yno-generic-signatures"指定すると、ある程度バイナリサイズ減ることに気がついた。 とある自分のライブラリ(scalaprops)だと、 7% く…

猫とscalazとscalacheckとscalapropsと私

さて、このあたりのこと色々ありすぎて書ききれないんですが、たまには少し書いておこうという気になったので書いておきます。

scalazのTraverseとStateモナドを使ってTreeの重複を削除(もしくはdirected acyclic graphをtreeに変換)する話(scalapropsの内部実装)

タイトルを無闇に長くしていくスタイル

scalazとcatsの型クラスやデータ構造の対応表

名前が違ってるのだけ書きだした。 猫はまだ1度もリリースされてないし、これ書いてる時点(2015-05-22)の情報なので、今後変わる可能性は大いにあり? 必要以上に(?)名前変えるのは、当て付けなのか何なのか・・・。混乱を招くデメリットのほうが大きい気が…

scalaz.concurrentのActorとFutureとTaskあたりの説明

https://www.dropbox.com/s/567s5mxlcyzzh8h/PurelyFunctionalConcurrency.pdf

scalapropsというproperty based testingのライブラリをリリースしました

https://github.com/scalaprops/scalaprops *1 *1:最初organization作ってませんでしたが、途中から専用organization作りました

scalaz 7.2.0-M1をリリースしました

リリースノートをgithubのwikiにまとめてるのでそれを読もうhttps://github.com/scalaz/scalaz/wiki/7.2.0-M1

scalaz-streamの基本的なクラスや概念まとめ

なぜかgistに書いた

remotelyが最初はakkaを使っていた話

Scaladays2015サンフランシスコの動画が公開され初めていたので、個人的に興味がある者から見始めていますhttps://www.parleys.com/channel/scala-days-san-francisco-2015

モナドの本当の力を引き出す・・・モナドによる同期/非同期プログラミングの抽象化

以下の2つの続き ScalaでFutureとEitherを組み合わせたときに綺麗に書く方法 FutureとEitherの話の続き(ApplicativeとMonadの違い)

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

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

Scalaでテストライブラリを作ってる話

http://xuwei-k.github.io/slides/scalazcheck/#0 https://github.com/xuwei-k/slides/blob/gh-pages/scalazcheck/scalazcheck/scalazcheck.md

shapless2.2によるScalaにおけるFoldableのderivingとstack overflowとその回避策

shapeless2.2.0-RC1がリリースされる http://notes.implicit.ly/post/113543562389/shapeless-2-2-0-rc1↓

Scalazのstar数がSwiftzに抜かれた!?

▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂うわあああああああ

「Functional Programming in Scala」を訳した「Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド」という本が出ます

わざと両方のタイトルをblogのタイトルに入れてみました(ながい・・・) レビューに少しだけ関わりました。自分が翻訳したわけではありません。あくまでもレビューです

ついにScalaでもderiving Functorできるようになるらしい!?

まじか Automatic derivation of #Cats Functors for #Scala ADTs using #shapeless's new Generic1: URL2015-02-20 04:10:07 via Twitter Web Client https://github.com/milessabin/shapeless/blob/6534334603a640/examples/src/main/scala/shapeless/exam…

CoArbitraryを使ってScalazのテストをしたい人生だった

pocketberserkerさんが、CoArbitrary実装してた scalacheckの内部構造をいじって遊んでみた

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

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

Free Applicativeの実用的でわかりやすい例を思いつきたかった

この前ScalazにFree Applicativeが入りました。https://github.com/scalaz/scalaz/blob/8f339d9ca2/core/src/main/scala/scalaz/FreeAp.scalaFree MonadのApplicativeなやつです。それの話をします

msgpack4zというmsgpackのScala用ライブラリを作った

twitter上では何度かtweetしてたし、この前msgpackのjavaに関して書いたりしたけどmsgpack javaについてやっと、ここ2ヶ月くらいの成果を一旦リリースしました。最初はそれほど色々作る予定なかったのに、気がついたらかなり色々できてしまいました。それら…