haskell-jp / questions #96

@Kenta Inoue has joined the channel
@sako has joined the channel
質問はこちらの方が良いでしょうかね?
... Replies ...
まず、Haskellというよりももっと一般的な質問なのですが、
webアプリのバックエンドって、フロントから呼び出されるたびに起動して、データベースを読み込んだりするものなのでしょうか?

何がいいたいかというと、バックエンドでフロントから送られてきたデータを使ってリストを作りたいのですが、このリストは毎回データベースに保存しなければならないのか、それともバックエンドのプログラム内に保持しておくことができるのか、という質問です。
... Replies ...
しかもHaskellでデータを保持するとはどういうことなのか(参照等価なので)もよく分かっていないです。
... Replies ...
すみません、あまりうまく説明できないです...
やりたいことは、関数型言語Elmみたいな構造をバックエンドでもやりたくて以下の構造を作ってみたのですが、
'sが状態の型
'iが入力の型
'oが出力の型
で、バックエンドでやりたいのは、
初期状態がinit::'sと
状態state::'sと入力input::'iに対して、次の状態と出力を返す関数update::'s -> 'i -> 's,'oで定義できるのではと考えて、型を実装してみました。

問題はこの構造から具体的にデータベースへアクセスしたりJSONなどに変換したりする実装をどうするかというところで止まっています。
ちなみにこのコードは、形式検証をするために定理証明支援系Coqと呼ばれるもので記述したコードをHaskellのコードに変換したものになっています。
... Replies ...
理想としては、Architecture型の引数をもらって、それに応じてデータベースのやりとりとJSONの入出力を行ってくれる関数を定義したい感じです。

データベースから's型の変数を作り、入力のJSONを'i型に変換し、updateを施した後、返り値の's型のデータをデータベースに保存し、'o型の返り値をJSONに変換して出力。
... Replies ...
@yousuke has joined the channel
@pyar6329 has joined the channel
persistent 関連のテストを書いてるんですけど、なんかいい感じに モック テスト用データを作ったりできるテストライブラリってあるんですかね?
Ruby (Rails) とかだと factory_bot とかを使うんですけど、パッと探した感じ、そういうの見つかりませんでした。
... Replies ...
CloudWatch logのJSON形式で良い感じにログを出力させるOSSって既にありますか?
[amazonka-cloudwatch-logs: Amazon CloudWatch Logs SDK.]()
は出力するのではなく逆に出力を解析する方みたいで不適に見えます
ちゃんとフォーマットするかはともかく作ること自体は簡単そうですが、車輪の再発明はしたくないなと思ったのです
無いなら作ります
... Replies ...
@quarter has joined the channel
Kengo Tachibana
@Kengo Tachibana has joined the channel
stack における下記のようなものって cabal にありますか?
stack ide targets
fused-effectsを用いて`callCC`をサポートするEffectを作ろうとしているのですが
実装がうまく行きません. どうすれば実装できるか知りたいです. 質問の詳細はスレッドに
続きます.
... Replies ...
@金具 has joined the channel
@さんたむ has joined the channel
@algas has joined the channel
ペッパー君
@ペッパー君 has joined the channel
@Tomo has joined the channel
@basashi has joined the channel
はじめまして,本日参加させていただきました.いきなりですが質問失礼します.
こちらと同じ機能をcaseを使って書くことはできるのでしょうか?
... Replies ...
すべて`x`でマッチしてガード式を使うというのは自分で思いつきました
@Benjamin Bray has joined the channel
@Yasutaka Odo has joined the channel
cabal v1-test で起動されるテストの CWD は、パッケージのトップディレクトリでした。テスト中にファイルパスを書くとき、パッケージのトップディレクトリから相対パスを書けばOKでした。

cabal v2-test で起動されるテストの CWD は、パッケージのトップディレクトリではないようです。ファイルパスは、どうやって書くのが正しいでしょうか? できれば、v1-test と共存できる方法が知りたいです。
... Replies ...
Shinichi Takano
@Shinichi Takano has joined the channel
前ここで質問させていただいた、
https://haskell-jp.slack.com/archives/C5666B6BB/p1594261873131500
に関連するのですが、haskellのlayout付きコードをbraces and semicolonsに完全に変換するのって、自分で例のレポートのL関数を(悪名高いparse-error(t)含め)実装するしかないのでしょうか? ghcの拡張をふんだんに使ったコードを変換するので、あんまり車輪の再発明はしたくなくて…
... Replies ...
ulidというパッケージについてrandom-1.2以降への対応を試みています
(背景: https://zenn.dev/autotaker/articles/random-1-2-is-awesome
どなたか、できればCPP使って1.2より前のバージョンと1.2以後両方の対応をやったことがあれば修正例として参考にさせていただけないでしょうか?
... Replies ...
Kazuhiko Sakaguchi
@Kazuhiko Sakaguchi has joined the channel
Kazuhiko Sakaguchi
こんにちは。GHC である計算 `act :: IO ()` を走らせたときに、それによってヒープ上に確保されたバイト数の総量(の近似)を知る方法をご存知の方がいたら教えてください。最初 `GHC.Stats` の `allocated_bytes` がそれかなと思っていたのですが、`act` を実行している間に勝手に GC が走らないように `+RTS -T -I0 -A8G -G1 -m1` を渡してみたところ、最初から 8GB の領域が確保された状態になり(従って `allocated_bytes` は 8 * 1024^3 になる?)、その中でどれだけのメモリが実際に使われているかが分かりません。
... Replies ...
Hiromi ISHII / mr_konn
関数呼び出しに対してヒープアロケーション量をはかる場合だと、ぼくはよく weigh を使いますね
https://hackage.haskell.org/package/weigh
bracket の第二引数(資源解放)で STM を利用すると、デッドロックを起こすことがあるのは、よく知られたことですか?
... Replies ...
@ has joined the channel
関数型プログラミング言語を作りたいので、グラフ簡約について勉強したいのですが、何かいい文献はありますか?
... Replies ...
@Kenta Arai has joined the channel
@千吉川 has joined the channel
simultaneous and mutually recursive definitions ってどう訳すればいいと思います?
... Replies ...
スニペットに張ったようなデータ構造を提供しているライブラリを探しています。
自分で書きたくないのは、drawTreeみたいな関数を再発明したくないためです。
ない場合自前で書きます…
... Replies ...
@ has joined the channel
@tomonaga has joined the channel