Haskell

copying_gcという車輪の再発明

なんか、最近、「車輪の再発明をしよう」みたいな話がちょくちょくあるので、GCを再発明してみた。「車輪の再発明をしよう」の例: https://twitter.com/viscuit/status/288181884658257922…まぁ、再発明っていうか、スクラッチで書いただけなんですけど。 …

JHCのGC解説

GC Advent Calendarでは時間的に書けなかった、JHCのGCの解説をまとめる。 JHCのGC概要 JHCには下記3つのGCオプションがある。 GCなし BOEHM GC JGC このうち、上の二つはgc_noneによる実装であり、JGCはgc_jgcによる実装である。 この様な構成になったのは…

Haskell の GC を比較してみる

GC Advent Calendar 22日目の記事です。同じ言語に対する異なる処理系があれば、GCを比べてみたくなるのは人間のサガですよね。 今回はHaskellの2つの処理系のGCを比べて見ることにします。 ■ GHC(the Glasgow Haskell Compiler) Haskellの実行系といえばこ…

GHCソースコードリーディング勉強会 第1回 行ってきた

第0回に続いて、 GHCソースコードリーディング勉強会 第1回 #readghc に行ってきた。というか発表しました。発表資料: GCをみればRTSが見えてくる、かも。。。まー、ちょっと読み込み不足なところもあって、メンバー見たらかなりこわい人達だったので、これ…

Miller-Rabin法で擬素数を探す

Miller-Rabbin法による擬素数探索をHaskellで書いてみた。感想 1. 多倍長計算を気にせずできるInteger型素晴らしい! 2. とりあえず乱択のパラメーターを乱数にしているけど、IOモナド破壊しても大して困らなそうなので破壊したいと思います。改善点 1. 実際…

Control.DeepSeqを使って正格評価(訂正版)

何が酷いって、記事を見なおしてみたらfoldrとfoldlのロジックを間違えてる。コレは死ねる。。。ただ、Bangについてはそれでもちょっと怪しいので訂正版の記事を作り直したいと思います。 古い記事 は自戒の意味も込めて残しておきます。(なんの意味があるの…

Control.DeepSeq を使用して正格評価

本記事はfoldのアルゴリズムに対する理解がめちゃくちゃだったんで修正記事作りました。(2012/06/25) モンテカルロ法で円周率を計算するために多数のIOから取り出した結果の集計を行おうとした。 しかし未評価thunkによるメモリオーバーフローが発生し、イン…