Drkcore

19 10 2010 Haskell RWH Tweet

Real World Haskell 25章

プロファイリングと最適化

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。

  • GHCのランタイムには+RTS -RTSでランタイム専用の引数を渡せる
  • -fforce-recompで強制再コンパイル
  • ヒープの割り当て
  • WHNFに注意

融合

ストリーム融合というやつ

import System.Environment
import Text.Printf
import Data.Array.Vector

main = do
  [d] <- map read `fmap` getArgs
  printf "%f\n" (mean (enumFromToFracU 1 d))

data Pair = Pair !Int !Double

mean :: UArr Double -> Double
mean xs = s / fromIntegral n
    where 
      Pair n s       = foldlU k (Pair 0 0) xs
      k (Pair n s) x = Pair (n+1) (s+x)
  • 第37回 書き換え規則を使って不要な計算や中間データを除去
  • 第40回 Stream Fusionによる融合変換で処理系の最適化機能を生かす
  • 第41回 任意の再帰構造による処理を融合変換できるStream Fusion

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021