fugafuga.write

日々のログ

pg_restore 時に unsupported version (1.13) in file header エラーが出る

postgresql-client のバージョンを上げる必要がある PostgreSQL: Linux downloads (Ubuntu) (参考) Why am I getting pg_restore: [archiver] unsupported version (1.13) in file header error with pg_restore? - Heroku Help

すごいH本 part92

プログラムにログを追加する ユークリッド互除法。2つの数を取り、最大公約数を求めるアルゴリズム。 gcd関数を自前で作る gcd' :: Int -> Int -> Int gcd' a b | b == 0 = a | otherwise = gcd' b (a `mod` b) 実行 *Main> gcd' 8 3 1 8 と 3 の最大公約数…

すごいH本 part91

Writer Writerモナドはもう1つの値がくっついた値を表し、付加された値はログのように振る舞う。 Writerモナドを使うと、一連の計算を行っている間全てのログが単一のログ値にまとめて記録されることを保証できる。 盗賊団の人数をとり、それが大きな盗賊団…

カイゼン・ジャーニー 第3部読んだ

カイゼン・ジャーニー 第3部 読書メモ

カイゼン・ジャーニー 第2部読んだ

カイゼン・ジャーニー 第2部 読書メモ

カイゼン・ジャーニー 第1部読んだ

カイゼンジャーニー第1部の読書メモ

すごいH本 part90

モナド則 ある型がMonadのインスタンスとなっていることは、その型が真にモナドであることを保証しない。 真にモナドになるために、ある型はモナド則を満たす必要がある。 左恒等性 return x >>= f と f x は等価である。 return がある値を最小限の文脈に入…

すごいH本 part89

騎士の旅 チェス盤の上にナイトの駒が1つだけ乗っており、ナイトを3回動かして特定のマスまで移動させられるかという問題を解く。 type KnightPos = (Int, Int) moveKnight :: KnightPos -> [KnightPos] moveKnight (c,r) = do (c', r') <- [(c+2,r-1),(c+2,…

すごいH本 part88

do 記法とリスト内包表記 リスト内包表記はリストモナドの構文糖衣である。 listOfTuples :: [(Int, Char)] listOfTuples = do n <- [1,2] ch <- ['a','b'] return (n, ch) ↓ *Main> [(n, ch) | n <- [1,2], ch <- ['a','b']] [(1,'a'),(1,'b'),(2,'a'),(2,'…

すごいH本 part87

リストモナド 5という値は決定的である。一方、[1,2,3]のような値は複数の計算結果を含んでいるとも、複数の候補地を同時に重ね合わせたような1つの値であるとも解釈できる。 リストをアプリカティブスタイルで使う *Main> (*) <$> [1,2,3] <*> [10,100,1000…