IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

2019-04-01から1ヶ月間の記事一覧

HLintでよく指摘される内容

今作成しているライブラリでHLintを実行してみました。傾向としては、冗長なdoと冗長なカッコの指摘が多いようでした。 src/Database\SQLServer\Internal\Tokens.hs:626:1: Suggestion: Use newtype instead of data Found: data ROW = ROW{columnValues :: …

io-streamでストリームを変更する

Generatorを作る必要があります。 以下のようにしてしまうと、固定値を永遠に流すストリームになってしまいます。 badFunc :: InputStream Int -> IO (InputStream Int) badFunc s = do v <- S.read s case v of Just x -> makeInputStream $ return $ Just …

ファイルに行番号をつける

io-streamでinputstreamを作りつなげるだけ。 is-stream sample

is-streamでファイルコピー(デバック付き)

io-stream sample 3 (copy) デバック部分はコメントアウトしています。

CoqからHaskellのコードを生成する

Extractionという機能を使うとできるらしい。Coqで証明してHaskellで動作させる感じなのか。 coq.inria.fr 単純な方の定義 Inductive FBB : Type := | Foo | Bar | Buzz. Require Extraction. Extraction Language Haskell. Extraction "C:\work\FBB.hs" FBB…

Haskellのモナドを圏論的に理解するスライド

数学でいうモナドの定義と、Haskellで普段使っているモナドの定義は、一見違うように見えるが、実は、クライスリカテゴリを通じて、同じだという話(雑な理解)。 http://emorehouse.web.wesleyan.edu/research/talks/monad_rosetta.pdf the seemingly diffe…

Kindの入門記事

diogocastro.com 記事を読むには以下のextensionの理解が必要。 KindSignatures haskell - Kind Signatures - Stack Overflow ExplicitForAll MagicHash haskell - What are hashes (#) used for in the library's source? - Stack Overflow ConstraintKinds…

ラムダ式があのように表現されている意図

ラムダ計算を学ぶときに最初に読んでおくとよいと思った。(というか自分にとっては今が最初だけど) sites.google.com "f(x)"という表記法の欠陥は、高校の数学までではほとんど表面化しませんが、 大学に入ってから定義域や値域が関数の集合になるような …

分った積りの積分定数

例えば、 数学の不定積分の説明 不定積分|もう一度やり直しの算数・数学 不定積分とは、積分の範囲をどこからどこまで、という範囲を指定していませんので、積分の範囲が不定になっている積分のことです。 (中略) ※記号のCは積分定数なのでその中身はいくつ…