haskell-jp / general #9

@ has joined the channel
haskell.jp のトップページの SlackArchive へのリンクは消しておいたほうが良いかもしれませんね。ちょっとハマりました。
f :: a -> b -> cf :: (a, b) -> c に変換するには uncurry ですが、 f :: a -> b -> c -> d -> ef:: (a, b, c, d) -> e に変換するイディオムのようなものはあるのでしょうか。
(\(a, b, c, d) -> f a b c d) なんでしょうか。最近 (f .) というイディオムを知ったのでうまく表せるのかなと思った次第です。
oh... すみません、 https://github.com/haskell-jp/slack-log でHTMLが出せるようになってから。。。なんて思ってましたが取り急ぎ対応します。
そういうときに便利な http://pointfree.io/ というサイトがあるんですよ!と言おうと思ったんですが、今試した限りなぜかうまくいきませんね。。。
https://github.com/bmillwood/pointfree のパッケージをビルドしてみるといいのかも。

ただ、要素が3つ以上のタプルには、 fstsnd のような、中身を取り出す関数が標準でないため、その手のイディオムでやるのは難しい気がします!
みんな自前で定義してる…… https://www.stackage.org/lts-12.4/hoogle?q=uncurry4
やっぱり難しいんですね。
汎用性を求めるなら、TemplateHaskellを考えたらどう?
ですよね。TemplateHaskell のチュートリアルにも載ってますし それが無難だと思います。 但し、spliceをして生成されるコードに型注釈を書けない(と思う)ので、そういうレベルでの保障はやり難いと思います。
但し、spliceをして生成されるコードに型注釈を書けない(と思う)ので
SigEというコンストラクターでできるっぽいです。
http://hackage.haskell.org/package/template-haskell-2.13.0.0/docs/Language-Haskell-TH.html#t:Exp
おお!それなら意外ときれいなコードが生成できますね
@otake84 has joined the channel
最近Haskellの勉強を始めました!よろしくお願いします!
@Oli Bradford has joined the channel
@harunari has joined the channel
最近憧れてたhaskellを始めました すごいH本で勉強しています よろしくお願いします!
エロ本???!(うぷぷ
@ has joined the channel
Tsuyoshi Miyamoto
@Tsuyoshi Miyamoto has joined the channel
@ryuukin has joined the channel
@L4u has joined the channel
あまりに初心者な質問で申し訳ありません。ghciの中でいろいろ作業中、例えばControl.Lensが必要だと気づいたとします。package.yamlにlensを追加まではいいとして、その後ghciを抜けることなくControl.Lensをロードすることは可能でしょうか。今は一旦ghciを抜けて、またstack ghciで入っているのですが、それまでいろいろ作業してきた内容をまた1からやり直しています。できればそれまでの作業や変数はそのままで追加でモジュールが読めれば最高なのですが・・・
私が知る限りできません。
同じコマンドを打ち直したくないという場合、ghci_historyから入力したコマンドを貼り付ける、ぐらいでしょうかねぇ

あるいは、そもそもの運用として、GHCiはじめREPLは記録が残らず、やってきたことをやり直すのに弱いので、なんどもやることは適当なファイルに書いておいた方がいいかと思います。
別にpackage.yamlにlibraryやexecutableとして追加する必要はなくて、stack.yamlがあるのと同じディレクトリーにいれば

stack exec ghci -- lens-sample.hs


みたいなコードでlensに依存したファイルを読めるはずです。
捕捉: その状態でlensを同じstack.yamlがあるディレクトリーから使えるようにするには2つ方法があります。

:one:「package.yamlにlensを追加」した上で
stack build --only-dependencies

するか、
:two: package.yaml に特に追加することもなく、
stack build lens

してください。
@JokerTheWild has joined the channel
@hiro_iskwa has joined the channel
@paul has joined the channel
igrep様、返答ありがとうございました。お返事が遅くなってしまい申し訳ありません。
やはりreplはそういったものだ、と捉えるのが良さそうですね・・・package等に書かずに読み込むことができるとは!教えていただいてありがとうございました。
@slacknowledge has joined the channel
Hello. I am slacknowledge bot.
When a thread is added a :memo: (memo) reaction, I will save it.
Everyone can view the saved thread at https://slacknowledge.pig-brewing.com .
@semimaru has joined the channel
@ has joined the channel
@Myzr has joined the channel
@hoge has joined the channel
@ has joined the channel
@ぜいく has joined the channel
@e_ntyo has joined the channel
@ has joined the channel
VSCodeのStylish-haskellをアップデートすると正常に動作しなくなるそうです。注意してください
https://github.com/vigoo/stylish-haskell-vscode/issues/11
もし、アップデートしてしまったという人は0.0.9にダウングレードすると直ります。
VSCode extensionダウングレード方法
基本的にこのブログを参考すればできます。
https://inocop.hatenablog.com/entry/2018/03/14/135252

stylish-haskell 0.0.9のVSIXパッケージのリンクは以下のようになります。
(クリックするとダウンロードが始まるので注意)
https://vigoo.gallery.vsassets.io/_apis/public/gallery/publisher/vigoo/extension/stylish-haskell/0.0.9/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage
注意:ダウングレードする際には
User settings の`"extensions.autoUpdate": false`にしてから行ってください!
@はなかず has joined the channel
https://haskell.jp/blog/posts/about_us.html にもリンクがまだ残ってました(アーカイブ探しててハマりました&まだ見つけられてなくてきっとまだWEBで見られるページはないんだろうと思ってます)。
ありがとうございます。
human readableな形式じゃございませんが取り急ぎ https://github.com/haskell-jp/slack-log/tree/master/doc/json をcloneしてgrepなりjqなりしていただけると! :pray:

あと、リンクを消すPRを
https://github.com/haskell-jp/haskell-jp.github.io に送っていただけると助かります! :bow:
しばらく時間とれなさそうなので、忘れてしまわないように issue だけ切っておきました。
https://github.com/haskell-jp/haskell-jp.github.io/issues/12