haskell-jp / random #51

(あったらどうしよう、という不安もある)
そんときは優しく教えてくれますよ。ドキュメントの書き方が悪い、といえる可能性もありますし
@sky.is.gray has joined the channel
結果が出てました。
コンストラクター 62%
構築子 38%
構成子 0%
でした。
これなんで聞いたかというと https://ghcguide.haskell.jp/8.2.2/users_guide/index.html で構成子と訳されていて聞きなれなかったからでした。
再びhigher-kinded dataの話ですが、この間教えていただいたhiggledyはbarbiesと競合しているわけじゃなくてbarbiesを、 Generic なあらゆる型に使えるように補助するものなんですね。
GHC 8.10のGHCiから、型クラスのインスタンスを検索するコマンドが追加されるそうです。 https://gitlab.haskell.org/ghc/ghc/merge_requests/720
@kazasiki has joined the channel
私は「構成子」という訳語を使っています.これは,武市正人訳『関数プログラミング』近代科学社の訳語対照表に拠ったものです.個人的には,「構築子」という用語がすこし,imperativeな香りがするのと,一部のOOPLで定着しているものの印象強いので,「構成子」という言い方のほうが好きです.また,Constructiveには「構成的」という訳をあてることが多いので...
@shsato.t.t.n has joined the channel
@tomozx8 has joined the channel
こんばんは。今回 builderscon に Haskell でプロポーザルを出してみました。締切直前に駆け込みで提出したので若干雑なんですが、ちょっとでも裾野を広げるような話ができればいいかなと思っています。リンク先ページの SNS シェア数が加点要素になるらしいので、気に入ったら拡散いただけると幸いです。

君の手で作るモナドは怖くない - https://builderscon.io/builderscon/tokyo/2019/session/a4313ede-add2-4449-a9d1-0ad988ee91e0
ちなみにプロポーザルはもう一つ提出してますが、こっちは Haskell とは全然関係ないです。

形式手法による分散システムの検証 - https://builderscon.io/builderscon/tokyo/2019/session/fa356ee3-6be9-4850-ac9e-037bd34aabaa
正直なところ、個人的に、Haskellをやろうともしない人にこのテーマはあまり良いものだと思えません。
これまでも何度か近いテーマのものを見たり書いたりしてきましたが、「結局モナドはよくわからない」という印象を与えるにとどまっているんじゃないかと思っています。
まぁ、今回はその点を
「モナドとは何か?」という問い自体がナンセンスである
という観点で打ち破ろうと考えているんだと思いますが、やっぱりHaskellをある程度知っている人向けにしない限りきついんじゃないかと思います。分量的にも聞いている人のモチベーション的にも。
Haskell初心者にはちょうどいいテーマだとは思いますが...
言わんとすることはわかります。CFP 書いてる最中にも思ってましたが、百歩譲って仮に内容が 100% 理解されたとしても、モチベーション的に so what みたいな結果になりそうですよね…。「ねこのきもち爬虫類特集号」みたいな。
すみません、提出した後にこんなことを言って...
こんなこというとなんだか下心で言っているように聞こえちゃうかもですが、ぜひbuildersconでダメでもHaskell Day 2019で発表してみてください! :pray:
つい最近、Haskell全く触ってない人からモナドについて聞かれたので、需要はあると思いますよ。モナドチュートリアルが多過ぎる問題のことを言っているのであれば同意しますが(まあ、実際、数学的な背景を理解しない限り厳密な解説にはならないのだから、いくらチュートリアルが増えてもすべての人のモヤモヤしたものが晴れることはないでしょう)。
今年の RubyKaigi のセッションで Haskell の Monad 的な機能を作るみたいなのありましたよ
ウケは良かった気がします(たぶん
まあどっちにしても CFP は出してしまったし、結局のところは興行でしかないので、ウケなかったら採択する側にも責任があるということにしてしまいましょう。ちなみにカエルは両生類だと思います。
マニュアルを読むと GHC の -hT オプションは健在な感じがするんですが、使うとランタイムに怒られます。-h ならうまく行きました。どこかで変更が入りましたか?
つい最近、Haskell全く触ってない人からモナドについて聞かれたので、需要はあると思いますよ

それはそうだと思うんですけど、結局Haskell(または圏論)をやる以上の近道がない(と、自分なりにチャレンジしたりいろいろ読んで思いました)ので、できるだけHaskellに導きたい...
クラスのないC言語でクラスを持ち込んでもあまり流行らないか好かれない(gtkとか)
のと一緒でモナドのない言語でモナドをやっても、もやもやしますよね。
@merrynewyear6593 has joined the channel
めちゃくちゃドーーーーーーでもイイんですけど、最近 GitHub に Dhall が加わったんですねw
https://github.com/github/linguist/pull/4539
@shibahas.has has joined the channel
@stekitou has joined the channel
https://github.com/fumieval/extensible/tree/flip extensibleテクニカルプレビュー第二弾: ベースとなる型 :*:| のパラメータを、リストが先、包装型が後になるよう入れ替える大胆な変更です。リストを固定することが多いので取り回しがよくなり、barbiesのインターフェイスも利用できるようになります
barbies は逆なんだ
data Foo h = Foo (h Int) (h Double)みたいな非extensibleなHKDが増えてきたので、この際そちらに合わせようと
http://fumieval.hatenablog.com/entry/2019/06/13/155557 こちらにも宣伝。バッチリクエストを安全に表現するためのアイデア
デザインがいつのまにか変わってた
以前から、 h :* xs を見たとき xs の先頭に h をのっけているように感じられてならなかったので、それが少し改善されますね! :+1:
xs :& h なら xs が前なのでそうとは思えない!)

ただ同時に思ったのですが、敢えてこれらを演算子にする意味ってありますかね。。。普通に英語の名前を与えた方がわかりやすい気がしてきました。
むしろいい名前が思いつかなかったので演算子にしたという経緯があります…
:naruhodo: 。そんなこともあろうかとちょっと考えてましたが、まだ ProductSum も型の名前としては使ってないし、ちょうどいい気がしますね。
さすがに標準ライブラリと被るのは…
どっちもPreludeに入っているわけじゃないし... とは思いますが Data.Functor.{Sum, Product}があったんですね... 使われる文脈を考えると確かにちょっと紛らわしいかも知れませんね(ひょっとしてextensibleパッケージの中でも使ってる?)。
EProduct, ESum と妥協するのはダメでしょうか?
なるほど…どちらにせよ利用者が直接触れることは少ないので、決してダメということはないですね(型名にアルファベットの接頭辞を付けるのは避けていました)。
なお演算子にした理由は、括弧が節約できて見やすいからです
changes 訳して誰かブログに……(お前がやれってな
GitHub releases の元の Markdown 取れないのかな
@takakuni1118 has joined the channel
ChangeLog.md に同じのあるな
Pantry?
stack.yaml.lock なるもが生成されるようになったのか(git で管理する必要はなさそう
https://docs.haskellstack.org/en/stable/lock_files/
https://github.com/treeowl/sort-traversable 今日のピックアップ: Traversableであれば何でもソートできる変態パッケージ。そのからくりは、「ヒープから値を取り出すStateモナド」「ヒープのモノイドによるConst」を融合させたようなApplicativeにあり
hpack の defaults 機能の local がうまく動作しなかった
$ stack test
Cabal file info not found for extensible-0.5, updating
Selected mirror 
Downloading root
Selected mirror 
Downloading timestamp
Downloading snapshot
Downloading mirrors
Cannot update index (no local copy)
Downloading index
Updated package index downloaded
Calculating hashes to check for hackage-security rebases or filesystem changes
No old cache found, populating cache from scratch
Populating cache from file size 606624768, hash 29db327ba3cecd02d72a043ab9d88aef73f883c7a42ea8e929245c4778463a14
Populating package index cache ...
Package index cache populated
Invalid value for "defaults"! File /private/var/folders/cp/j_f70sks34dcqsrqjgdll5jskt59rw/T/hpack-pkg-dir86858/../mix-base.yaml does not exist!

とりあえず、該当パッケージに stack(hpack) で生成した .cabal を置くようにしたらうまくいった
どーでもいいけど、stack v1 のローカルキャッシュは死ぬ :innocent: