IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

Haskellにはforがない。でもループのインデックスみたいなやつを使いたいとき。

> ['a','b','c']

のようなリストを扱っているときに、インデックスも使って処理をしたい時があるかもしれません。

その場合は自分でインデックスを付与してあげます。

 > zip [0..] ['a','b','c']
[(0,'a'),(1,'b'),(2,'c')]
 >

fold系の関数を使うときに、タプルで受け取って処理をすればよいと思います。

> foldl (\acc (idx,x)-> acc ++ (show (idx,x))) "" $ zip [0..] ['a','b','c']
"(0,'a')(1,'b')(2,'c')"
>