2007-09-18から1日間の記事一覧

print関係

Rubyとの比較でおぼえる PostScript Ruby 備考 print print 改行なし = puts 改行あり == p クォートあり pstackは==を使って全スタックを表示 stackは=を使って全スタックを表示

foldrとfoldl

両者の違いを実感するために、それぞれでmap関数を書いてみた。 mpr f = foldr (\a b->f a:b) [] mpl f = foldl (\a b->a++[f b]) [] main = do print $ map (*2) [1..3] print $ mpr (*2) [1..3] print $ mpl (*2) [1..3]別解 mpr f = foldr ((:).f) []

foldの呼び出し順を括弧で表示

(あるいはHaskellの型が邪魔だった事例)以下のRubyの処理をHaskellでやることを考える irb> [1,2,3].inject(0){|a,b|[a,b]} => [[[0, 1], 2], 3]まずは素直にリストでやってみる。 Prelude> foldl (\a b->[a,b]) 0 [1,2,3] Occurs check: cannot construct t…