top page > computer > haskell > web_lecture > for_programmer > zipwith.html
更新日:
文責: 重城良国

関数zipWithの紹介

はじめに

「リストの再帰的定義」で使う関数zipWithの紹介をする。ここでは使いかたのみとする。

動作

関数mapをリストふたつへと拡張したものだ。

map :: (a -> b) -> [a] -> [b]

zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]

2引数関数とふたつのリストをとり、リストから1つずつ値をとりだして関数に与え結果をリストにまとめる。

% ghci
Prelude> zipWith (+) [3, 4, 5] [6, 7, 8, 9]
[9,11,13]
Prelude> :m Data.Char
Prelude Data.Char> zipWith filter [isDigit, isUpper, not . isUpper] ["1st Floor, 2nd Floor, 3rd Floor", "Haskell Brooks Curry", "There are many Capes.", "I will be ignored."]
["123", "HBC", "here are many apes."]

それぞれのリストから0番目、1番目、2番目、...と値をとりだして関数に与える。短いほうのリストの要素がなくなったら終了だ。

「構文: @パターン」へもどる 「フィボナッチ数列」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics