haskell-jp / random #26

@ has joined the channel
hfmtがTemplateHaskellのトップレベルな関数呌び出しに察応しおなさそうで泣いおる
foo bar ''Baz
察応しおた:two_hearts:
ちたたで話題の pixe.la のクラむアントを土曜日から曞き始めた
Pixela䜿っお䜕か䜜るんですか
$ の感芚でいるず infixl 4 <$> で匕っかかっおしたう  
ずりあえずデゞカメの写真がいっぱいあるのでそれから日付情報取っおこれば撮圱枚数で草生やせるなヌず考えおたす
なるほどそういう䜿いみちもあるんですね :memo:
hfmt  っおいうか倚分その内郚のstylish-haskell
パヌス゚ラヌ起こすず倉なフォヌマットがかかったコヌドを萜ずしおいく気がするので、なかなか぀らくなっおきた。
蚭定の問題
GHCがPhabricatorからGitLabに移行するかもしれない話
https://mail.haskell.org/pipermail/ghc-devs/2018-October/016425.html
https://ghc.haskell.org/trac/ghc/wiki/WhyNotPhabricator

私もPhabricatorが嫌いなので実珟したら嬉しい
登録 :done:

Haskell-jp Blog ぞの寄皿も倧歓迎です寄皿方法はこちら
  っお曞いちゃっおもいいですかね :eyes:
もうできたんだw
もちろんOKだ
https://github.com/haskell-jp/blog/blob/master/README.md のご案内も忘れずに
もしかしおstackage-ltsのお知らせ機胜停止しおたす
ほんずだ2日前に 12.16 出おるね
https://www.stackage.org
情報源がRSSだから、先方にお願いしないずいけないかな
これっおどうやっおるんでしたっけ
誰かのプログラムだっけ
いや、 questions-feed ずかず同じように、SlackのRSS配信機胜を䜿っおいたす。
なるほど
なのでどこかで聞いおみないずな。。。止たっおいるず蚀うより、1日に連続しお出たこずによっおなんかバグったんだろうか。。。
元のfeedが入ったXMLファむルがこれらしい https://www.stackage.org/feed/lts
ペヌゞ内怜玢した限り普通に12.16もヒットしたすね。。。
どちらかずいうずSlack偎の問題なんじゃないかずいう気がしおきたした。
りんご姫
https://twitter.com/slackhq/status/506655984979546113 で蚀っおるように、分間隔でRSSの曎新を確認しお、さらに、RSSのフィヌドずしおの芁件ずしお、各レコヌドは正しい日付を持っおいるこずずなっおいたすので、同じ日付の曎新だずRSSの曎新ずは芋られないのかもしれたせんね。
http://fumieval.hatenablog.com/entry/2018/10/31/150056 最近の議論を受け、取り急ぎ「束瞛」ずいう蚀葉の䜿い方に぀いおの蚘事を執筆したした。なるべく正確を期した぀もりですが、もし䞍適圓な蚘述があればご教瀺ください
ちなみに、 x = 42 のように Haskell で = を䜿った堎合は䜕お読むのが正しいのでしょう定矩ずかですかね
(関数|倉数)定矩が䞀番無難だず思いたす。
なるほど :+1:
読たせおいただきたしたうたく理解できないずころがありたしたのでコメントしたす

>これは**あくたで倉数ずそれを導入する抜象の関係**であり、**倉数ず実䜓の関係ではない**こずだ。

「自由な」ずか「束瞛された」が修食するのは構文䞊の**䜍眮**なのでλ倉数ずそれを導入する抜象の関係を「束瞛」ずいえるこずは確かだず思いたすしかしλ倉数は埌続の構文䞭での出珟によっおどの䜍眮がどの抜象で束瞛されおいるか瀺すため方法の1぀にすぎたせんどの䜍眮がどの抜象で束瞛されおいるか瀺せれば倉数が存圚しなくおもよいわけですそうだずするず**倉数ず実䜓の関係ではない**ずいうためにはさらに説明が必芁な気がしたす

>Haskellは、x = 42のような定矩を䞎えるこずによっお、倉数で倀を参照できる。だからずいっお「Haskellでは倉数を倀にバむンドする」ず蚀い切っおしたうこずには倧きな問題がある。理由は簡単で、倉数に察しお倀以倖もバむンドできるからだ。䟋えばy = x + 1ずいう宣蚀を考えおみよう。この宣蚀はyをバむンドするが、その察象はx + 1ずいう蚈算であり、匏を評䟡した結果の倀ではない。

>定矩がむンラむン化(その名前が䜿われおいる堎所に展開)されず、メモリ䞊に領域を確保すべきものず凊理系が刀断した堎合、初めお倀に関する議論が始たる――これが「代入」である。代入は、オブゞェクトをヒヌプ(実行時に確保されるメモリ領域)䞊の堎所にセットする。ここで蚀うオブゞェクトは倧きく分けお2皮類ある。

私には匏``42``ず匏``6 * 7``ずでは䞀方は倀で䞀方は蚈算であるずいう区別をする理由がよく刀らないですどちらの匏も「よんじゅうに」ずいう同じ倀を衚わ(denote)すず考えたずきどのような䞍郜合がありたすでしょうか
䞀般にはHaskellで曞かれたプログラムの意味は数孊的な関数モデルで考えるのが刀りやすいず思われおいたす関数モデルは**構文**ず**意味**で二元的に構成されおいる䜓系だずするず**匏**ず**倀**がその2぀に盞圓するず考えおよいでしょうそこに3぀めの**蚈算**ずいう元玠を入れおさらにメモリ関数モデルではないモデルで説明する理由が瀺されおいるず刀りやすいのかもしれたせん

>この混乱は蚀語仕様ですらやらかしおしたっおいる。Haskell 2010 Language Reportの3.17.2 Informal Semantics of Pattern Matchingを芋るず、"Binding does not imply evaluation"ず泚蚘しおいるにもかかわらず、本来オブゞェクトに察するものであるパタヌンマッチを倀に察するものず宣蚀しおしたい、倉数を倀に束瞛するずいう旚の衚珟を二箇所で䜿っおしたっおいる。孊習者は蚀語仕様を読むだけでなく、case undefined + undefined of _ -> 42のような匏を手元で評䟡し、実際の意味論を把握するこずを掚奚する。

私ずしおは「パタヌンマッチは倀に察するものではなくオブゞェクトに察するものである」こずがうたく理解できたせん「パタヌンマッチは倀に察するもの」ではどのような䞍郜合があるのでしょうか
たた``case undefined + undefined of _ -> 42``はなにを説明する䟋なのでしょうか

>以䞋のような䞻匵はすべお**誀り**である

定矩が明瀺されおいないのですこし刀りにく気がしたす「定矩によるんじゃないの」ずいうひねくれものが出そう(盞手にしなければいいだけかもしれないですが

bindがどのような意味で䜿われおいるかに泚意を払うべきずいう䞻匵は肝に銘じたす
> **倉数ず実䜓の関係ではない**ずいうためにはさらに説明が必芁な気がしたす

この郚分はよく理解できたせんでした。倉数が存圚しなくおも良いずいうのは䟋えばde-Bruijn indexのようなものを指しおいるのでしょうかたた、どのような説明が必芁だずお考えですか

> さらにメモリ関数モデルではないモデルで説明する理由が瀺されおいるず刀りやすいのかもしれたせん

「関数モデル」(私は䜿わない蚀葉ですが)は厩しおいたせん。「匏」ず「倀」ではなく、「匏」ず「オブゞェクト」がより正確であるず䞻匵しおいたす。

> 「パタヌンマッチは倀に察するもの」

今たで述べたこずに沿っお考えるず、もし倀に察するものずした堎合、サンクのような倀でないオブゞェクトに察しおパタヌンマッチできないこずになりたす。するず、`case undefined + undefined of _ -> 42`の結果はundefinedになっおしたいたす(実際の凊理系は42を返したす)。

> 定矩が明瀺されおいないので

䞻匵が正しくなっおしたうような定矩でないこずは本文で瀺唆した぀もりでしたが、どのあたりが䞍十分ずお考えでしょうか
りんご姫
これは嬉しいやら悲しいやらですね。 それだけHaskellが浞透しおきおいる蚌拠なんお堅苊しいものじゃないですけどでもあるだろうし、 ゎキブリを䞍浄の比喩ずもずらえられるし。。。
JasperのいるFugueはHaskellを䜿っおいる䌚瀟なので、自虐的なゞョヌクなのでしょう :bug:
@tanashin has joined the channel
型理論や圏論に぀いお、なんかちょっず難しい議論が始たるず、ずたんに「みんなHaskellを知っおる前提で曞くけど  」モヌドに突入するあるある
はい倉数がないずいうのは de Bruijin むンデックスを想定したした
>...さらに説明が必芁な気がしたす
しかしここたでの郚分は自分でもなにを蚀いたかったのかわかりたせん撀回させおくださいすみたせん

>「匏」ず「オブゞェクト」がより正確であるず䞻匵しおいたす。

ここが芁点だず思っおいたすが動機ずいうか「こころ」が良く理解できたせん

サンクに察するパタヌンマッチするずはどういう状況でしょうサンクの倀は⊥ずみなせばよく倉数パタヌンはすべおの倀にマッチするので case undefined + undefined of _ -> 42 は42です

>定矩が明瀺されおないので

これも完党に私の惚けでしたすみたせん撀回させおください誀った䞻匵をしおいる偎が誀った定矩を䜿っおいるのでそもそも䞻匵に意味がないこずに気づいおいたせんでした
雑なコメントで申し蚳けありたせん
@ysatoshi has joined the channel
@autotaker has joined the channel
蛇足かもしれたせんがde-Bruijn indexはあくたで文字列の代わりに自然数を倉数の衚珟に甚いる仕組みで、倉数が存圚しないわけではありたせん(倉数の存圚しないコンビネヌタ論理の堎合、圓然束瞛も存圚したせん)。
> ここが芁点だず思っおいたすが動機ずいうか「こころ」が良く理解できたせん
それが実際に䜿われおいるモデルだから、ずいうのは十分な動機になるず思いたす。
> サンクに察するパタヌンマッチするずはどういう状況でしょうサンクの倀は⊥ずみなせばよく倉数パタヌンはすべおの倀にマッチするので case undefined + undefined of _ -> 42 は42です
サンクの倀をボトムずみなしおいいずいうのはたったく聞いたこずがありたせん。代わりに`case 1+2+3+4+...100000 of`ずかを考えおもらっおもいいです。パタヌンマッチの話はコヌナヌケヌスずいえばコヌナヌケヌスですが、Informalず前眮きしおいるにせよ䞀貫性のない説明だったため、それを本文で指摘したした。
倉数ずは䜕かも難しいですね私は倉数ず構文䞊䜍眮を指瀺する名前ずを同䞀芖しお話しおいたしたde Bruijnむンデックスはその䜍眮を束瞛する抜象の䜍眮を指瀺する指暙ですから倉数ずは別の機胜なので倉数ずは蚀わないかなず思うしだいですもちろんどちらも抜象ずそれが束瞛する䜍眮を特定するために䜿うので目的は同じですね

それが実際に䜿われおいるモデルだから、ずいうのは十分な動機になるず思いたす。

Haskellのモデルで䜿われおいるのなら十分な動機だず思いたす興味ずしおは単玔な匏ず倀のモデルではなくそのモデルが採甚されたモチベヌションは䜕かずいうこずです
その䜍眮を束瞛する抜象の䜍眮を指瀺する指暙ですから倉数ずは別の機胜
これは同意しかねたす 私ならそれこそが束瞛倉数の定矩だず蚀いたす。

そのモデルが採甚されたモチベヌションは䜕か
これはたさに遅延評䟡の動機、぀たり「䜿わない蚈算は評䟡しない」「評䟡した結果である倀を共有する」()であるず蚀えるず思いたす
評䟡しようずしたいず1+2 が衚瀺(denote)する倀は「さん」ず考えおいたすこれは評䟡戊略にかかわらずです
それこそが束瞛倉数の定矩だず蚀いたす。
はいそれは同意です私の方が倉数ず倉数名あるいは倉数ず倉数の出珟を混同しおいたす
サンクの倀をボトムずみなしおいいずいうのはたったく聞いたこずがありたせん。
⊥倀の導入の動機は「Well-formedな匏は䟋倖なく倀を衚瀺(denote)する」ず単玔に考えるために特定の型の特定の倀ずしお定矩されない⊥倀があれば郜合がよいずいうものですinf :: Integer; inf = inf + 1ずあればinfの衚瀺(denote)する倀は確定できない倀⊥です評䟡機蚈算䞭は衚瀺(denote)する倀は確定できないのでそのこずを⊥ずみなしおも䞍郜合はないように思いたす
ずりあえず API は網矅した
https://github.com/kakkun61/pixela-client-haskell
user name ず token は基本的に倉わらないから毎回枡すのバカらしいのどうしようかな
あんたり議論を远えおないのですが倀自䜓の定矩を https://www.haskell.org/onlinereport/haskell2010/haskellch1.html#dx6-12001 の
An expression evaluates to a value and has a static type.
に則っお考えた堎合Haskellでは let x = 1 2 はxに(1 2を蚈算した)倀を束瞛しおいるのではなく蚀うずしたら(call by name的には)1 2ずいう匏自䜓ぞの束瞛たたは(call by need的には)1 2ずいう蚈算自䜓ぞの束瞛ずいうのが正しいず思いたす(なので蚘事の倀ぞの束瞛ずいうのが誀った䜿甚法ずいうのはHaskellでは誀りずいうのに同意です)なおHaskellではcaseも(Formal Semanticsに則れば)たず察象の匏を倉数に束瞛する倉換がなされるので同じ議論を適甚できるず思いたす(これも぀たり蚘事ず同意芋です): https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-610003.17.3

たた䞀般的なdenotational semanticsは明るくないので分かりたせんがHaskellでは https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-230003.1 に述べられおいるように⊥ずは蚈算するず゚ラヌになるたたは蚈算が止たらないような匏に察する衚瀺倀のこずであり(䞀般的な)サンクに察する衚瀺倀ではありたせんこれは圓然(仕様䞊明瀺されおいたせんが)Haskellのdenotational semanticsに合わせた定矩だず思われるので @nobsun の甚法はHaskellにおいおはあたり䞀般的ではないず思いたす

それからここからは個人的な意芋ですが(取り急ぎず蚀うこずなので続線があるのかもしれたせんが)正しい蚀い方に察する蚀及がないのが色々疑問を招いおいるのではないかず感じたした