haskell-jp / random #65

prettyprinterを使ってCBOR(MessagePack)を表示するプログラムと(cbor-tool)、foldl・trifectaを活用した、ヒストグラムなどを算出できる簡単な統計処理ツール(harvester)を追加しました。Haskell界隈はアプリ例の欠如にずっと悩まされているので、少しでも参考になればと
流行りに乗って、Haskellライブラリのヘルプデスクを立ち上げました。日本語・英語のどちらでも大丈夫なので、簡単な質問だけどissueにするのは抵抗ある…という方もご安心ください
【次回予告】 一度導出すれば、あらゆるフォーマットに変換できるインターフェイス――コードネーム "rosetta"、始動
剰余を使わず、Semigroupとcycleを使ったFizzBuzz https://blog.ploeh.dk/2019/12/30/semigroup-resonance-fizzbuzz/
今週のHaskell Weeklyから。
GHC の並行並列強いぜの後ろにはこういうのがあったんだなと
https://twitter.com/masahiro_sakai/status/1215449081377513472
言われてみると確かにかなりすなおな実装だった
暗黙並行、完全にサンク作る前提(当然Unbox化とかできない)なので、今にして思うと何をどうやってパフォーマンス出せばいいんだろうって感想 https://twitter.com/masahiro_sakai/status/1215449292191592448
@matsuzono has joined the channel
@カーメ has joined the channel
@tanaq has joined the channel
依存関係を減らしたりupxを使ったりしてHaskellの実行ファイルのサイズを減らそうという話
https://dixonary.co.uk/blog/haskell/small
レコードについて、必須のフィールドとオプションのフィールドをうまく扱う方法の紹介です。
(Chris Doneさんのgistです。 ghc-proposalsのRecordDotSyntax提案のスレッドにて紹介されていました。)

https://gist.github.com/chrisdone/7dddadd089e6a5d2e3e9445c4692d2c2
出たな HKD(なるほど
https://twitter.com/Iceland_jack/status/1216326395519012865 DerivingViaの生みの親が来日するそうですよ!
@yaza_ta has joined the channel
くっそー、ちょうどHaskell-jpもくもく会の翌日ですね... :disappointed_relieved:
型クラスのデフォルトの型はすべて言語仕様にハードコードされてると思い込んでいた回答者自身が今日一衝撃を受けた質問です。
https://teratail.com/questions/234608
Luite Stegeman
@Luite Stegeman has joined the channel
Luite Stegeman
Any Haskell events the coming days in Tokyo? I have a flight on Friday but maybe I can book a new one a bit later
According to the calendar, these events are held this month:

https://mit.connpass.com/event/161620/ at 18th in Kyoto
https://connpass.com/event/159833/ at 25th in Nagano
https://haskell-jp.connpass.com/event/160795/ at 26th in Tokyo, by me!
Luite Stegeman
Thanks. Haha it's tempting to stay near Nagano for a while and do some more skiing before coming back to Tokyo. But I don't think I can stay that long.

Maybe I visit Japan another time later in the year and do a bit more planning beforehand then.
I'm glad you seem to like Japan. :grin:
I look forward to the next time!
Luite Stegeman
Hokkaido was nice and decent snow before the new year (compared to the rest of the country) and I liked Sapporo. People are friendly and often try to help even if they don't speak English (it's really my fault for not speaking Japanese!) But I haven't been to the mountains on Honshu yet.
https://qiita.com/kurunin52/items/c555f30b4ea7362d3cf1
こういうのではまる人が結構いるんだろうなぁと思うとつらい :disappointed:
https://qiita.com/Aruneko/items/e72f7c6ee49159751cba などありがたい記事もあるけど...
あれ、コメント欄に記載されているURLが同じものになっていますね…
ほんまや... 直しました。 :heavy_check_mark:
修正 & 記事紹介 ありがとうございます :bow:
Haskellに限らず、わりとよくありそうな事案
他の言語はどうしてるんだろう
すごいH本に代わるようなよい入門が出ていればこういうトラブルは少ないと思うので、他の人気の高い言語はそうなってるんじゃないかと思いますね... :disappointed_relieved:
profunctorial95
@profunctorial95 has joined the channel
profunctorial95
@here
はじめまして、北マケドニア出身、東京の会社に勤めているソフトウェアエンジニアのステファンと申します。主にはScalaを書いておりますが、最近HaskellやPureScriptも書き始めました。何回かHaskell-jpの会議を参加しようと思ったのですが、都合が合わなかったり用事などでまだ参加出来ておらずに。
数学は興味深いですしずっと圏論を勉強し続けつつ、Haskellをうまく書けるようになれると嬉しいです。
どうぞよろしくお願い致します。:palms_up_together:
https://summer.haskell.org/news/2020-01-12-call-for-ideas.html
Google Summer of CodeにHaskell.orgとして参加する企画、Haskell Summer of Codeのネタ募集
続けて失礼。GHC 8.8.2が出たそうです。 :tada:
https://mail.haskell.org/pipermail/haskell-cafe/2020-January/131785.html
compact region うまく活用してる事例ってもうあるのかな
tagstewでは、HTMLのエンティティ(`&`など)を引くテーブルがそこそこ大きいのでCompact regionに納めています。GCに費やす時間をおよそ2割削減できました 
@ has joined the channel
tagstewのような、実行ファイルに含めてもいいようなマスターデータってのが典型的な使い方なんでしょうかね。
いや、実行ファイルに含めるか否かは関係ないか。メモリーに常時載ってても構わない(GCの必要がない)データならいいのか。
ニューラルネットワークのパラメータのような、要素数が多いが頻繁には更新しないようなデータに向いていると思います
なるほど。内部に閉じていれば更新が少しは発生してもいいのか。
dhall-haskellの簡約化済み値をcompact regionに入れようとしたら、Mapが入らなくて詰んだ記憶が
Baldur Blöndal
@Baldur Blöndal has joined the channel
元の質問とはそろそろ関係なくなってきそうなのでこっちで続けます。
ぶっちゃけ、競プロで整数に関するdefaultingの変更が役立つ場面はそんなにないと思います。
まず、競プロで整数に関するdefaultingが発生するのは
• べき乗の指数にリテラルまたは readLn した変数を書いた場合
readLn して簡単な計算をして print する場合(ABCのA問題など)
の2つかと思われます。これらの状況では、 Integer が使用されてもそんなに問題にはならないでしょう。これ以外の状況では、例えば
ByteString の関数を使って整数列を読み取る場合は readIntreadInteger を使うので型の曖昧さは発生しない
• unboxed vectorに格納する場合はdefaultingが発動しない(`Unbox` 制約がかかるので)
なのでdefaultingのお世話になることは少ないかと思います。
まあ私自身は最近競プロはやってませんし、コーディングスタイルも人それぞれだと思うので、もしかするとdefault宣言が役立つ場面もあるかもしれません。defaultingでハマった・defaultを変えたくなった・変えてよかったなどの経験談があったら知りたいです。