この記事は Monad がわかる人に向けた MonadTransformer の解説記事です。
すごいH本や FP in Scala などでモナドまではイメージが掴めたけれど、モナドトランスフォーマーが何かわからない、という層をターゲットに想定しています。
基本的に Functor, Applicative, Monad および型クラスについては把握しているものとしますので、この辺があやふやな方は別の資料などをご参照下さい。
| 日時: | 2017-07-04 |
|---|---|
| 作: | @voluntas |
| バージョン: | 1.0.2 |
| url: | https://voluntas.github.io/ |
| 時間: | 30 分 |
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| public interface Relation { } | |
| public interface Relation<K, out V> : Relation | |
| { | |
| V Get(K key); | |
| } |
| 更新: | 2017-04-03 |
|---|---|
| 作者: | @voluntas |
| バージョン: | 1.0.6 |
| URL: | https://voluntas.github.io/ |
2017 年 4 月 1 日に行われた Elixir Conf Japan 2017 の発表者用のメモです。
In the language specification, the translation rule of do! e; is defined as follows:
T(do! e;, V, C, q) = T(let! () = src(e) in b.Return(), V, C, q)
And the signature of Return is usually 'a -> M<'a>, so the type of do! e; results M<unit>.
http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf の要約。
著者はレスリー・ランポート (Leslie Lamport), 1978年。
分散アルゴリズムの書籍や論文でお馴染みの、分散システムにおけるイベント群の順序や時刻の概念を説明している論文。
! が先頭についている箇所は、要約者による(いい加減な)注釈。
| package msgpack4z | |
| import java.math.BigInteger | |
| import scodec.Attempt | |
| import scodec.bits.{BitVector, ByteVector} | |
| import scodec.msgpack.codecs.MessagePackCodec | |
| import scodec.msgpack.{MNil, MessagePack, Serialize} | |
| object ScodecPacker { |