haskell-jp / random #78

cabal.projectに
package パッケージ名
  test-show-details: direct

と書いておくと便利です
さっそく書きました!
MonadState にも MonadReaderlocal に相当するものが欲しくなった(具体的な型使えばいいんだけど
cabal-install の 3.4.0.0-rc1 がリリースされました。今回は、ARMのaarch64用バイナリもリリースされています。
ですので、ラズパイ4の Ubuntu 20.04LTS上にて、cabal-install-3.4.0.0-rc1 + ghc-8.10.1 の組み合わせが、苦労なく動きます:pie:

cabal-install-3.4.0.0-rc1 リリース情報
https://mail.haskell.org/pipermail/cabal-devel/2020-July/010484.html

別件おまけ。 ARM aarch64用の GHC 8.10.1 のバイナリはここ。
https://www.haskell.org/ghc/download_ghc_8_10_1.html#linux_aarch64

GHCのARM対応近況はここ。
https://www.haskell.org/ghc/blog/20200515-ghc-on-arm.html
coercionを使う場合、内部表現が同じであるという証拠としてnewtypeコンストラクタが要求されます(それがない場合、エラーとなります)。今回のように、不正な値を作る方法がない場合、コンストラクタは公開するのがベストプラクティスと考えられています。  に簡単な説明があります
ありがとうございます。勉強になりました。
値構築子を公開した 0.1.1.0 を公開しました。
VS Code のプラグインをインストールするだけで haskell-language-server がダウンロードされてうまく動いたっぽい~(Windows でも
VS Code のプラグイン、id が alanz.vscode-hie-server から haskell.haskell に変わってますね
しばらく使ってると何か処理が終わらなくなる……
はて、そういえばMonadとApplicativeはどう訳したものか... :confused: https://twitter.com/FlavioCorpa/status/1288983432870219777
Monadは「単子」という訳も一応はあったような。
中国語で「単子」と訳すこともあるそうなのでなかなか紛らわしいことになりそう :sweat_smile:
すみません、引用したtweetを読み違えてました。むしろぴったりじゃん
https://twitter.com/lastland0/status/1288991181259575299
英辞郎で applicative を引いたら "applicative language" に「作用型言語」(他で調べるとどうも「関数型言語」のsynonymらしい)という訳があるっぽいので、 applicative は「作用素」としてはどうだろうとか思ったけど別の「作用素」(operator)と衝突しますねっていう。
Applicative Functor は「作用的関手」でどうでしょうとか
https://xtech.nikkei.com/it/article/COLUMN/20120110/378061/?P=2 で呼んでいる「作用ファンクタ」とも整合しますね! :+1:
ただ個人的には、「適用可能関手」の方が「Functorにapを付けたものだよ」という意図がはっきり伝わるので好みですね。
Control.Applicative から参照されてる Applicative Programming with Effects http://www.staff.city.ac.uk/~ross/papers/Applicative.html というpaper、内容を見ると "Effectful Programming with Applicative" というタイトルのほうが正しいんじゃないかという気持ちになる……
そういえば「群作用」という用語があったな……、と思って元の名前を調べてみたら "group action" でした、と…… https://ja.wikipedia.org/wiki/%E7%BE%A4%E4%BD%9C%E7%94%A8
例の論文を読んだ感じではApplicativeは関数適用を意識したネーミングのようなので、あえて訳すとすれば「適用的(関手)」かなあと思ってます
中国語で検索してみたところ、适用函子(適用〜)、应用函子(応用〜)、可应用函子(応用可能〜)、高级函子(高級〜)、加强版函子(強化版〜)などが見つかりました。ご参考まで…
こんな読書会を @nobsun さんとやる予定なので興味ある人はぜひ!
https://twitter.com/lotz84_/status/1289391122238717953?s=21
スライドに使うフォントだけで話題になる男、Simon Peyton Jones。
https://t.co/WvleQezUjv https://twitter.com/YuriyBogomolov/status/1289202285159919616?s=20
GoogleカレンダーのHaskell勉強会カレンダーへの登録お願いします:pray:(アクセス権限ありましたよね?
Nobuyuki Tomizawa
たしかに、Comic Sans以外のフォントはほぼ見たことがないですね :slightly_smiling_face:
Hackage の haskeline-0.8.0.0 と GHC 8.10.1 付属の haskeline-0.8.0.0 が MonadFail に関して異なるせいでハマった……
Thanks to @mod_poppo
https://hackage.haskell.org/package/haskeline-0.8.0.0/docs/System-Console-Haskeline.html#t:InputT
https://downloads.haskell.org/~ghc/8.10.1/docs/html/libraries/haskeline-0.8.0.0/System-Console-Haskeline.html#t:InputT
なんでわざわざ
 MonadFail m => MonadFail (InputT m)

を消してしまったんでしょうね。
0.8.0.0 で入った(はず)のインスタンスなんですよね
前回のHaskell Weeklyから。Nixでstack scriptとかcabal script的なことをする話ですかね。
https://publish.elbear.com/#Use%20Nix%20to%20make%20experimenting%20with%20Haskell%20easier
Haskell Language Server、VS Codeだけかと思いきや https://github.com/haskell/haskell-language-server/releases から普通に実行ファイルダウンロードできるようになってたんですね。
素晴らしい。これで私の非力なノートでも戦える
https://github.com/mattn/vim-lsp-settingshttps://github.com/neovim/nvim-lsp に貢献する日が来たか。
(実はもう誰かやってる?
えっ、Windows版に拡張子 .exe がないのってどういうこと... :cold_sweat:
fileコマンドで調べたら一応ちゃんと実行ファイルにはなっているらしい
モナドトランスフォーマーを雑に ResultT という名前にしたら ResultT IdentityResult という名前にしたくなって名前がかぶった。名前空間が違うからまあいいか?
もともと値コンストラクターをかくして直接使わない想定のAPIだったでしょうから、むしろ ResultT Identity に寄せるのもいいかも。
@ has joined the channel
登録しましたー!
Haskell Implementors' Workshop (HIW 2020)でEgisonのパターンマッチを実装したHaskellライブラリであるSweet Egisonについて話せることになりました!
https://icfp20.sigplan.org/details/hiw-2020-papers/10/Sweet-Egison-a-Haskell-Library-for-Non-Deterministic-Pattern-Matching
Sweet Egison ( https://github.com/egison/sweet-egison )は去年Haskell Dayで発表させていただいたminiEgison ( https://github.com/egison/egison-haskell ) を高速になるよう改良したものになっています.
Egisonパターンマッチを使って書いたプログラムが同じ意味のHaskellによる通常の関数型プログラムとほぼ同じ速さで動きます.(Egisonパターンマッチを使って書いたプログラムが同じ意味のHaskellプログラムに変換されるように実装されているおかげです.)
Yutaro Sakamoto
@Yutaro Sakamoto has joined the channel
ICFPのearly registration(安くチケットが買える)は8/8まで。
今年は世界中の人が参加できるよう、発表を録画しておいて2回配信するそうです。
https://blog.sigplan.org/2020/08/04/come-to-virtual-icfp/
5年近く放置されてた optparse-declarative ですが自分がメンテナーに追加されたのでメンテナンスしてきます:muscle:
https://hackage.haskell.org/package/optparse-declarative
stack 2.3.3がリリースされました。バグ修正が主な変更のようです。
@coord.e Contributor入りおめでとう! :tada:
https://github.com/commercialhaskell/stack/releases/tag/v2.3.3
GHC 9からの多倍長整数( Integer 型)のサポートについて。
ghc-bignumというパッケージで内部表現を統一した結果、新しい実装が劇的に作りやすくなったそうです(GHCの作者とかがうれしい)。
Pure Haskellな多倍長整数であるinteger-simpleもそれに合わせて書き換えられ(パッケージの名前も変わる?)、大幅に高速化できた、とのこと。
https://iohk.io/en/blog/posts/2020/07/28/improving-haskells-big-numbers-support/
integer-simpleは内部表現が [Word] 風のデータ構造だったのが新しいpure Haskellによる実装では(これまでのinteger-gmpと同様) ByteArray# ベースになってますし、integer-simpleは書き換えられたというよりは廃止されて置き換えられたと言った方が適切かと思います。
私が絶賛作成中の浮動小数点数パッケージでも Integer の内部表現や内部的な関数に触れられると嬉しいので、ghc-bignum対応を行っています。テストするには自分でGHCをビルドするところから始めないといけないのが辛いところです。 https://github.com/minoki/haskell-floating-point/blob/主/fp-ieee/src/Numeric/Floating/IEEE/Internal/IntegerInternals.hs
bytestring-0.10.12.0がリリースされました。罠として悪名高いIsString ByteStringインスタンスに注意書きが入っていますね 
いっそのこと IsString ByteString は削除してしまっても良いのではないかというのは日本人的感覚なのでしょうかね
Rustだとバイトリテラルは別で b"hoge" みたいに書きますね
「主」