どちらも同じに見えるんですけど。 Haskellを学びはじめてから、結構長い間これが分からなかったのでまとめ。 結論 func x = f (g (h x))は$,.を使うとOKのようには書けるがNGのようには書けない。 $ .
畳込関数fold:foldrとfoldlの違い (あるいはfold_right, fold_left) - 一歩前進 無限リストをfoldrで扱う(foldlでは扱えない) haskellは遅延評価が特徴。 式の評価は外側から行う。 つまり外側の評価をするその時に内側の結果が必要なら計算する。 算数で例えると (1 + (2 * 3)) という計算の場合は、外側の1 + の部分を計算するためには(2 * 3)の結果が必要なので、しゃーなしにその時に(2 * 3)を計算するみたいな感覚っぽい。 なので foldl (+) v [x0,x1,...,xn] = (...((v + x0) + x1) ...) + xn foldr (+) v [x0,x1,...,xn] = x0 + (x1 + (... (xn + v)...)) のような場合だと foldlの場合は一番外側の式がxnの計
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く