elm-jp online Unisonの話 資料
右のオプションでstart presentationするとプレゼンモードになる
予定
elm-origami作ってます(?)- 1m
みやめんとカレンダー2022やってます - 30s
Unison intro - 1m
Unison やばポイント - 1m30s
Unison おもしろポイント - 1m
自己紹介
miyamo
https://twitter.com/miyamo_madoka
https://github.com/miyamoen
手芸プログラマー
Elm歴
けっこう
まだFRPが残ってた頃から
Elmでお仕事歴
3年ちょい
一応まだElm bot(Japanese only)活動してる
botです
作っているパッケージ
elm-route-builder
URL builderとparserを一度に定義することができる
ドキュメントを書いてない
elm-origami
rtfeldman/elm-cssのfork
CSS in Elm. runtime型
CSS Cascade LayersやContainer Queryを考慮して調整したいと思って2年くらい過ぎた
みやめんとカレンダー
一覧
twitterで連載しているAdventCalendarの一種
ここ2,3年はやる気がなかったが今年はなんか書くかと思ってやってる
ネタは「*要出典」な胡乱なことでいいかなって思ってる
聞きたいことあったら直接投げてください
https://gyazo.com/ec4dbff5bf0beea6e9f311a1a56c3a3b
新しい言語を学ぶことについて
たのしい
Unison
algebraic effectsを持つ見た目はわりとElmっぽい言語
Abilitiesって名前。Javaとかの例外を自分で作れるみたいな機能
どうやって見つけた?
algebraic effectsとかいうのが最近の流行りらしいので載ってる言語をいろいろ探してた
ほかにはkoka(効果), Effekt, Effとか
なぜUnisonを?
一番ドキュメントがしっかりしてる
一番やばい
Unisonやばポイント
テキストファイルベースじゃない
詳しくはここ
ucm(unison codebase manager)を起動
適当なファイルにコードを書く
ucmがファイルを解析して関数や型が保存できるよって教えてくれる
addするとcodebaseに入る
後から編集するときはucmで一旦ファイルに吐き出して修正する
構文木を保存してる感じ
gitみたいな仕組みが搭載されてる
当然Git, GitHubとは相性悪い感じする
専用shareサイトがちょい前できてた
Unisonおもしろポイント
型にstructualとかuniqueとか指定できる
code:elm
structural type Suit = Hearts | Spades | Diamonds | Clubs
structural type Direction = North | South | East | West
このふたつの型は同じ扱い
Delayed computations
longText : () -> Text -> longText : 'Text
do "..." : 'Text
Elmでもよくある正格評価の言語で遅延評価を表現する方法
Abilitiesをつけるのに頻出するので構文糖が定義されてるんだと思う
Abilitiesがついた関数は値として持ちまわせないので関数にするみたいな感じ
あやふやです