Skip to content

Instantly share code, notes, and snippets.

@pocketberserker
Created July 13, 2014 07:00
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pocketberserker/bb5059a58ddf182bf5a2 to your computer and use it in GitHub Desktop.
Save pocketberserker/bb5059a58ddf182bf5a2 to your computer and use it in GitHub Desktop.
Scalaz勉強会 データ構造ひと巡り

Scalazのデータ構造ひと巡り

発表場所

Scalaz勉強会

資料のライセンス

CC-BY-SA 4.0

自己紹介

image

  • なかやん・ゆーき / ぺんぎん / もみあげ
  • @pocketberserker / id:pocketberserker
  • 通りすがりの社会人2年目
  • Microsoft MVP for F# (2013/04 ~ 2015/03)
  • たぶん Scala ビギナー
  • 日課: Scalaz , GHC 周辺ライブラリの F# への移植実験

中盤なので

ゆるくデータ構造を見ていきましょう

データ構造 (data structures)

  • 計算機科学でデータの集まりを効率よく扱うためのもの
  • immutableなものもあるよ

Scalazのデータ構造っぽいもの

7.1.0 RC1 時点で deprecated でないもの(見落としあるかも)

  • Cord
  • DList (Difference lists)
  • Diev (Discrete Interval Encoding Tree)
  • FingerTree (2-3 finger tree)
  • Heap
  • ImmutableArray
  • ==>> (HaskellのData.Mapのことらしい)
  • NonEmptyList
  • Tree (Rose Tree)
  • Zipper

Cord

DList

Diev

昨日存在を知ったので飛ばします

FingerTree

Heap

==>>

NonEmptyList

Tree

Zipper

- https://github.com/scalaz/scalaz/blob/3bc05e3cef48abd6aec5f886e871260056684be4/core/src/main/scala/scalaz/Zipper.scala ‐ 要素の更新を簡単に - データ構造をたどる操作を効率的に - すごいHaskell楽しく学ぼう にちょっとした説明があったような

データ構造でよく現れる型クラス

  • Foldable
  • Semigroup
  • Monoid
  • Reducer

懸念

  • 性能評価されていないらしい?

参考文献

  • Purely Functional Data Structures(Chris Okasaki - 1998)
  • 関数プログラミング入門 Haskellで学ぶ原理と技法(オーム社)

- すごいHaskell楽しく学ぼう(オーム社) ‐ 一部データ構造のコメントに記載されている論文

以下、時間が余った時用

私と Scalaz

  • Iteratee を調べていたら見つけた
  • Scala 基礎勉強会でさらに興味を持った

Scalaz の学び方?

ひたすら移植(写経)してみる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment