ちくわアンテナ
id:thata
![DVD](http://www.hatena.ne.jp/images/banner_mobile_amazon.gif)
![](http://www.assoc-amazon.jp/e/ir?t=hatena-m-22&l=mbn&o=9)
3/38ページ
▽m_sekiの日記●06/03 14:28 2021-10-17
Discordの音楽再生botの話 #FM719
Discordの音楽再生botの話 #FM719
▽Journal InTime●05/27 03:46 2021-09-11 (Sat) [長年日記]
_ RubyKaigi Takeout 2021
RubyKaigi Takeout 2021に参加した。今年もリアル開催できなかったのは残念だけど、動画配信が独自システムで、会議中にもどんどん改善されててすごかった。スタッフのみなさん、今回も楽しい会議をありがとうございました。
自分の発表は手持ちのチケットの説明であまり前向きな話ではなかったけど、RubyKaigiがなかったらたぶん実装が面倒で放置していたと思うので実装ができたのはよかった。
他の人の発表で印象に残ったのは遠藤さんのキーノートで、あれを見るとRubyに静的型はいらないと言ってた人もほしくなっちゃいそう。TypeProf自体は型を書かなくていいというコンセプトだけど、実用を考えるとライブラリ含めてやっぱりある程度RBSの記述が必要なわけで、他人は型を書くけど自分は(ほとんど)
▽きしだのはてな●05/21 08:19 2021-10-14
代数データ型の直積型と直和型の理解
代数データ型という考え方があって、型に対する代数的な操作を行うものっぽいです。代数的な操作というのは、足し算とか掛け算ですね。直和型と直積型というのがあります。
直積型は構造体のようなもので、Javaだとrecordが導入されましたね。
record A(int p1, boolean p2) {}
みたいなものです。
これがなぜ積なのかというと、このレコードAの取りうる値の組み合わせは、intの値のパターン数(2 ^ 32) × booleanの値のパターン数(2)で2 ^ 33になるからなんだと思います。
直和型は、型がこれかこれ、みたいになるやつです。Javaだとtry-catchのcatch句に直和型が指定できて、この例外かこの例外、みたいな書き方ができますね。
catch (NullPointerException | N
4.<前5 6.次5>
0.はてなアンテナトップ
8.このページを友達に紹介
9.このページの先頭へ
□ヘルプ/お知らせ
□ログイン
□無料ユーザー登録
□はてなトップ
(c) Hatena![](http://www.hatena.ne.jp/api/gam?utmac=MO-7823636-9&utmhn=a.hatena.ne.jp&utmn=[% USE Math; Math.int(Math.rand(2147483647)) %]&utmr=&utmp=http%3A%2F%2Fa.hatena.ne.jp%2Fthata%2Fmobile.cgi%3Fof%3D10&guid=ON)
![](http://t7.aqtracker.com/cgi-bin/asp/tagx/h/RW97JX8LB8ARRUVS9WPA/2=http%3A%2F%2Fa.hatena.ne.jp%2Fthata%2Fmobile.cgi%3Fof%3D10/4=/blank.gif?guid=on)