haskell-jp / random #64

『コンパイルの早いGHC』は男だけでなく女も望んでいる(と思う)。
コンパイルの早いかもしれないGHC(シェル関数)です:
fastghc() { ghc "${@/-O?([012])/-O0}"; }

-O2 を指定してコンパイルした時に通常のGHCとの違いが顕著になると思われます。
しょうもないネタですみません……。
https://scrapbox.io/haskell-shoen/%E5%A4%9A%E9%87%8D%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A 多重コンテナの操作について思いつく限りのものをまとめてみました
Nobuyuki Tomizawa
いい女(といい男)はOCamlを…(冗談です)。
コンパイル時間3倍でもいいので実行が速いGHCください
OverloadedRecordFields案件、読み取りに関しては既に完成してるんですね。

https://wandbox.org/permlink/0BOZswql6SCfEj7R

ただ、HasField => IsLabelのインスタンス定義は結局入らなかった?
IsLabel自動導出が入らなかった経緯については、ここの議論を追えばいいみたいなんですけど、長い。。。

https://github.com/ghc-proposals/ghc-proposals/pull/6
広すぎて色んな定義と被りそうだから、みたいな議論ですかね https://github.com/ghc-proposals/ghc-proposals/pull/6#issuecomment-276150270
なるほど、この辺ふまえて2019年時点で、普通のレコード型を定義する場合のベストプラクティス、みたいな奴をだれかがまとめると良いかもしれませんね
クリスマス :christmas_tree: らしいものを見つけた。Windowsでは動かないっぽいので誰か試してスクショ上げてください :pray:
(VMは手元にあるけど面倒くさい!)
https://mail.haskell.org/pipermail/haskell-cafe/2019-December/131749.html
ascii-holidays xmas-0
ブラウザーのタブに :speaker: のマークが出てたからてっきり音が出るのかと期待してしまった :sweat_smile:
そうです。記事では Monad で話を進めていましたが、 Data.Monoid で定義されている Ap の実装を見ると lift してる感じがわかりやすいですね。

-- | @since 4.12.0.0
instance (Applicative f, Semigroup a) => Semigroup (Ap f a) where
        (Ap x) <> (Ap y) = Ap $ liftA2 (<>) x y

-- | @since 4.12.0.0
instance (Applicative f, Monoid a) => Monoid (Ap f a) where
        mempty = Ap $ pure mempty
Haskell Advent Calendar用の記事を1本書いてみたんですけど、代理投稿すべきか……どうせ今日中に全枠埋まる確率は低そうなので、割り込むメリットなさそうですかね?
というか、明日以降でも全部埋めればランキング載るんでしたっけ
ランキングは特に興味ないので存じませんが、少しでも埋まっていた方が気持ちいいのでぜひ :pray:
では、日付早い順で枠をいただきます。失敬:pray:
組織紹介なのにしれっと ekmett いるのウケる https://scrapbox.io/haskell-shoen/%E7%B5%84%E7%B9%94%E7%B4%B9%E4%BB%8B
gtk2hs の README 見ると新規プロジェクトには haskell-gi を使えとあって haskell-gi の README 見たんですが、例が overloaded labels 使って何かハックしてますね
https://github.com/haskell-gi/haskell-gi
{-# LANGUAGE OverloadedStrings, OverloadedLabels #-}
{- cabal:
build-depends: base, haskell-gi-base, gi-gtk
-}

import qualified GI.Gtk as Gtk
import Data.GI.Base

main :: IO ()
main = do
  Gtk.init Nothing

  win <- new Gtk.Window [ #title := "Hi there" ]

  on win #destroy Gtk.mainQuit

  button <- new Gtk.Button [ #label := "Click me" ]

  on button #clicked (set button [ #sensitive := False,
                                   #label := "Thanks for clicking me" ])

  #add win button

  #showAll win

  Gtk.main
asterius(Haskell to WebAssembly compiler)がdiagramsパッケージをコンパイルできるようになったのでSVGを描画してみたらしい
https://www.tweag.io/posts/2019-12-19-asterius-diagrams.html
:sakulambda: サクラムダ テーマ を作ってみた
#FFFFFF,#FAD9E1,#767C53,#FFFFFF,#FAD9E1,#960028,#94E864,#767C53
背景が赤い版
#FAD9E1,#FFB0C3,#767C53,#FFFFFF,#FFFFFF,#960028,#94E864,#767C53
GTKはいかんせんクラス数がめっちゃ多いので、OverloadedLabelsは待ってましたとばかりに使い始めたような記憶があります
なるほど
しかも多相なレコードラベルとしての用法じゃなさそうですね
onをオーバーロードさせるためだけのダミーデータ(Proxyみたいなやつ)を作ってるんですね
めっちゃ頷ける:sweat_smile:
@ has joined the channel
この記事からも参照されてる Boring Haskell Manifesto も改めて:slightly_smiling_face:
https://www.snoyman.com/blog/2019/11/boring-haskell-manifesto

シンプルなHaskellで間口を広げる:haskell:
@tk has joined the channel
多分 今年最後のHaskell-jp Blogの更新です。
https://haskell.jp/blog/posts/2019/regex-applicative.html
@tsubo has joined the channel
それでは皆さん良いお年を、Happy New Haskelling:haskell::bamboo:
色々な具体例をかき集めて、テストデータやデモンストレーションとして活用するための*コミュニティ共通の*リポジトリを作りました。今後、独立したパッケージにするまでもない小さな例や、育ちきっていないライブラリの芽などはこちらに投稿していきますが、私一人では偏ってしまうのでぜひ加勢をお願いします! https://github.com/haskell-jp/playground
@kuwana-kb has joined the channel
@Masaki Ono has joined the channel
ありがとうございます!マージしました
@Dora has joined the channel
@maina has joined the channel