haskell-jp / general #9

@satosystems 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 のような、中身を取り出す関数が標準でないため、その手のイディオムでやるのは難しい気がします!
やっぱり難しいんですね。
汎用性を求めるなら、TemplateHaskellを考えたらどう?
ですよね。TemplateHaskell のチュートリアルにも載ってますし それが無難だと思います。 但し、spliceをして生成されるコードに型注釈を書けない(と思う)ので、そういうレベルでの保障はやり難いと思います。
但し、spliceをして生成されるコードに型注釈を書けない(と思う)ので
SigEというコンストラクターでできるっぽいです。
http://hackage.haskell.org/package/template-haskell-2.13.0.0/docs/Language-Haskell-TH.html#t:Exp
おお!それなら意外ときれいなコードが生成できますね
@shogo.otake has joined the channel
最近Haskellの勉強を始めました!よろしくお願いします!
@obradford has joined the channel
@nanteneus has joined the channel
最近憧れてたhaskellを始めました すごいH本で勉強しています よろしくお願いします!
エロ本???!(うぷぷ
@rtange.info has joined the channel
@sakuemon has joined the channel
@sarasaryuukin798 has joined the channel
@louyuhong 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

してください。
@yuichi has joined the channel
@hiro has joined the channel
@gohysip 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 .
@0semimaru0 has joined the channel
@is0399ii has joined the channel
@mz80ks has joined the channel
lagrange.resolvent
@lagrange.resolvent has joined the channel
@pinkgreen0304 has joined the channel
@pfhor.irworks38 has joined the channel
@entyo.contact has joined the channel
@jaxx2104 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`にしてから行ってください!
@hanakazu8989 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