広告スペース(バナー)
レッスン 16 / 20

高階関数とmap/filter

このレッスンでは、関数を引数として受け取る高階関数と、リストを加工するmapfilterの使い方を学びます。「Scala map filter 使い方」で調べている方向けです。

mapはリストの各要素を変換した新しいリストを作り、filterは条件に合う要素だけを取り出した新しいリストを作ります。どちらも元のリストは変更しません。

サンプルコードでは、numbers.filter(_ % 2 == 0)で偶数だけを取り出し、.map(_ * 10)でそれぞれ10倍しています。_は「その要素自身」を表す省略記法です。

初心者がよくつまずくのが、_という記号の意味です。x => x * 10と書く代わりに_ * 10と省略できる、Scala特有の簡潔な書き方に最初は戸惑いますが、慣れると読みやすく感じられます。

実際の開発現場では、for文で1つずつ処理するより、mapやfilterを組み合わせる書き方の方がScalaらしいコードとされ、Apache Sparkなどのデータ処理でも同じ考え方が使われます。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではScalaを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
リストから偶数だけを取り出して加工する処理が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)