LoginSignup
6
7

More than 5 years have passed since last update.

Haskellの関数の動作チェック3

Last updated at Posted at 2014-05-30

関数の使い方メモ

動作環境
GHCi, version 7.6.3

map関数

Prelude> import Data.List
Prelude Data.List> map (2/) [1..5]
[2.0,1.0,0.6666666666666666,0.5,0.4]
Prelude Data.List> map (/2) [1..5]
[0.5,1.0,1.5,2.0,2.5]
Prelude Data.List> map (\(x,y) -> x*y) [(1,2), (3,4), (5,6)]
[2,12,30]
Prelude Data.List> map even [2..8]
[True,False,True,False,True,False,True]

foldl関数

Prelude Data.List> foldl (++) "a" ["b", "c", "d"]
"abcd"
Prelude Data.List> foldl (+) 0 [1..10]
55
Prelude Data.List> foldl (*) 0 [1..10]
0
Prelude Data.List> foldl (\(x,y) (z,w) -> (x+z, y+w)) (0,0) [(1,2), (3,4), (5,6)]
(9,12)

foldl1関数

Prelude Data.List> foldl1 (++) ["b", "c", "d"]
"bcd"
Prelude Data.List> foldl1 (+) [1..10]
55
Prelude Data.List> foldl1 (*) [1..10]
3628800
Prelude Data.List> foldl1 (\(x,y) (z,w) -> (x+z, y+w)) [(1,2), (3,4), (5,6)]
(9,12)

foldr関数

Prelude Data.List> foldr (++) "a" ["b", "c", "d"]
"bcda"
Prelude Data.List> foldr (+) 0 [1..10]
55
Prelude Data.List> foldr (*) 0 [1..10]
0
Prelude Data.List> foldr (\x y-> length x + y) 0 ["abc", "defg", "hijkl"]
12

foldr1関数

Prelude Data.List> foldr1 (++) ["b", "c", "d"]
"bcd"
Prelude Data.List> foldr1 (+) [1..10]
55
Prelude Data.List> foldr1 (*) [1..10]
3628800
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7