Arantium Maestum

プログラミング、囲碁、読書の話題

2018-03-22から1日間の記事一覧

Effective C++勉強メモ: Item 27 キャストはできるだけ避けよう

「C++は基本的に型安全。コンパイルするなら本来unsafeなことはしない」とはじまるこの項目。本当か? 「キャストしなければ・・・」と続くわけだが、それにしたって今まで読んできた中にもどれだけundefined behaviourをうっかり踏みそうな地雷を見てきたと…

Thinking Functionally with Haskell勉強メモ: 第6章1 数学的帰納法による証明

第6章は証明について。まずは数学的帰納法による証明を説明し、それを元にfoldl、foldrといった高階関数の性質を証明し、今後は個別の処理について証明するときの論理をfoldlとfoldrの性質を使って簡略化・普遍化する。 今回は数学的帰納法の話。 自然数 数…

Thinking Functionally with Haskell勉強メモ: 第5章問題

Exercise A Matrix Intのすべての要素に1を足す関数: addOneToAll = map (map (+1)) Matrix Intのすべての要素の和: sumAll = sum . sum sum :: Row Int -> Int sum [] = 0 sum x:xs = x + sum xs 二つのMatrix Intの各要素を足す関数: addMatrix :: Mat…

Haskellと圏論ノート:Haskと型と関数と関手

Thinking Functionally with Haskellがすこし進んできたので、ちょっと今まで出てきた概念と関連するところまで圏論について調べてみた。まごうことなき私的勉強メモ。 圏Cは以下の三つの要素をあわせた概念: Object(対象)の集まり Cに含まれる対象間のmo…