タグ

ブックマーク / eed3si9n.github.io (2)

  • Scala コレクションのアーキテクチャ -- 共通する演算の摘出

    コレクションライブラリ再設計の主な設計目標は自然な型と実装コード共有の最大化を同時に実現することだった。特に、Scala のコレクションは「戻り値同型」の原則 ("same-result-type" principle) を採用しており、コレクションの変換メソッドは、できる限り同じ型のコレクションを返すようにしている。例えば、filter 演算は全てのコレクション型において、同じコレクション型のインスタンスを返すべきだ。List に filter を適用すれば List を返すし、MapMap を返す、という具合だ。これから、これがどう実現されているのかを見てみようと思う。 Scala コレクションライブラリは、いわゆる実装トレイト (implementation trait) を用いてジェネリックなビルダとコレクションの探索を実装することで、「戻り値同型」の原則を実現しながらもコー

    mizdra
    mizdra 2017/08/02
    Scalaコレクションライブラリにおける戻り値同型の原則の実装について
  • Scala コレクションのアーキテクチャ

    <body> This document uses frames to assist navigation. Your browser is currently not supporting the use of frames, but you may still access the <a target="_top" href="collections-impl_0.html">non-framed version</a>. </body>

    mizdra
    mizdra 2017/06/21
    ビルダ, *Likeトレイトの説明など
  • 1