"Typeclassopedia+α" オンラインもくもく会#24
イベント内容
概要
主に "Typeclassopedia" に掲載されている型クラスを理解するためのもくもく会です.
毎回指定した型クラスに関する "Typeclassopedia" の内容や,型クラスに関する記事を読んだり,モジュール等で定義されている関数を確認したりソースコードを読んだりすることを各自で行います.
日時
- 毎週金曜日 22:00 ~ 23:30
- 題材によっては,早めに終えることがあります
進め方
-
題材
- 毎回,対象とする型クラスを指定します
- 必ずしも "Typeclassopedia" の列挙順で指定しません
- "Typeclassopedia" に掲載されていない型クラスを扱うことがあります
- 分量が多ければ,複数回に分けたり次回に回したりすることがあります
-
もくもく会
- 連絡事項があれば,Discord にてテキストチャットで伝えます
- 先に勉強会を終えたり時間に遅れたりしても,お構いなく.ご自分の都合を優先してください.
- 対象の型クラスを時間中に終えられず次回までに終えることが困難であれば,次回の型クラスを決定する前に管理者に伝えてください.次回の題材を調整します.
- 時間が限られているとはいえ,各回で取り上げている内容の理解をできるだけ重視してください
題材予定の型クラス
-
[済]
Semigroup
,Monoid
-
[済]
Functor
,Bifunctor
-
[済]
Contravariant
,Profunctor
-
[済]
Apply
,Applicative
,Biapply
,Biapplicative
,Divisible
-
[済]
Bind
, 基本的なMonad
-
[済]
MonadFail
,MonadFix
, ほかMonad
関連 -
[済] "Monad Transformer", "Extensible Effect"
-
[済]
Comonad
,ComonadApply
-
[済]
Alt
,Plus
,Alternative
-
[済]
MonadPlus
,Decidable
-
[済] Parser combinators 関連ライブラリ (パッケージ)
-
[済]
Foldable
,Foldable1
-
[済]
Bifoldable
,Bifoldable1
,fold
関連ライブラリ (パッケージ) -
Traversable
関連? -
[済]
Semigroupoid
,Category
-
Arrow
関連-
[済]
Arrow
-
今回
ArrowZero
,ArrowPlus
,ArrowChoice
,ArrowApply
,ArrowLoop
-
(最終) その他
-
(備考) 一部型クラス名を変更する議論: semigroupoids issue#26
想定する参加者
-
型クラスの関係を確認したい方
-
ある型クラスで,どのようなメソッドが定義されているのかを確認したい方
-
ある型クラスのメソッドが,どのように実装されているのかを確認したい方
第24回の内容
以下は、あくまでも 目安 にして下さい。
今回と次回でどういう題材に取り組むかは個人の裁量に一任 します。 題材予定の対象に囚われずに、興味のあることに取り組んでください。
なお、次回(第25回) が最終回 です。
題材例
-
ArrowZero
,ArrowPlus
,ArrowChoice
,ArrowApply
,ArrowLoop
-
base
:Control.Arrow
-
"Typeclassopedia"
-
'Arrow': 飛ばした
ArrowChoice
,ArrowApply
,ArrowLoop
の箇所 -
'Failure and choice: Alternative, MonadPlus, ArrowPlus': 以前飛ばした
ArrowPlus
の箇所
-
-
"Arrowを理解する" (Lugendre, 最終更新日: 2019-01-22, Qiita)
-
Wikibook
-
Wiki
-
余裕がある場合
-
次回の対象: arrow (の概念)が(一部)関連していると思われるライブラリ・パッケージ
-
(注) メンテナンスがされている、ドキュメントが完備されている、使い勝手がいいとは限りません
-
Simulation
-
Aivika is a discrete event simulation (DES) framework with support of activity-oriented, event-oriented and process-oriented paradigms
- "Aivika:Computation-based Modeling and Simulation in Haskell"(David E. Sorokin, 2018-02-10, PDF): (注意) 150ページ
-
-
FRP (Arrowized FRP)
-
Domain-specific language embedded in Haskell for programming hybrid (mixed discrete-time and continuous-time) systems. Yampa is based on the concepts of Functional Reactive Programming (FRP) and is structured using arrow combinators
-
"YampaでFunctional Reactiveな認知行動療法ボット" (makoraru, 最終更新日: 2018-01-01, Qiita)
- 実装 (nishiuramakoto, cbt-slack-bot, github)
-
"Haskellプログラミング講座(上級編:ゲーム)" (2014-10-18 ~ 2015-07-30, bitterharvest, blog):
Yampa
,netwire
などの例が記載されているようです
-
-
Stream processing library similar to pipes, couduit, or machines.
Arrow combinatins are supported and can be used with the arrow notation. AFRP-like utilities are also available.
- "Arrow化pipeはFRPの夢を見るか?" (as_capabl, 最終更新日: 2014-07-01, Qiita)
-
Dunai is a DSL for strongly-typed CPS-based composable transformations.
Dunai is based on a concept of Monadic Stream Functions (MSFs). MSFs are a generalisation of the implementation mechanism used by Yampa, Wormholes and other FRP and reactive implementations. ... . MSFs can be used to implement many FRP variants, including Arrowized FRP, Classic FRP, and plain reactive programming. Arrowized and applicative syntax are both supported.
- "Functional Reactive Programming, Refactored"(2016-07-12, Paper): very detailed introduction to MSFs
-
-
SQL (PostgreSQL)
-
An SQL-generating DSL targeting PostgreSQL.
Allows Postgres queries to be written within Haskell in a typesafe and composable fashion
-
-
その他 (ワークフロー?)
-
An arrow with resumable computations and logging
- "Funflow: typed resumable workflows" (Tweag I/O, 最終更新日: 2018-04-25, blog)
-
-
タイムスケジュール
時刻 | 内容 |
---|---|
22:00 ~ 23:30 | もくもく会 |
23:20 ~ 23:30 | 次回の案内 |
備考
- Typeclassopedia の内容は不定期更新されているため,毎回最新版のものを利用します
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。