2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

スクリプト言語のmapの比較

Last updated at Posted at 2023-06-17

いろんな言語で以下の処理を書いてみた

  • 1から5までの配列を作り
  • それぞれ2倍にした配列を作る

Pythonリスト内包表記

[i * 2 for i in range(1,6)]

Python map

list(map(lambda x: x * 2  ,range(1,6)))

Perl

map { $_ * 2 } (1 .. 5);

JavaScript

Array.from({length: 5}, (_, i) => i + 1).map(x => x * 2);

PHP

array_map( function($x) { return $x * 2;}, range(1, 5));

Ruby

(1..5).map{|i| i * 2}

まとめ

意外と「1から5までの配列を作れ」ができる子とできない子に別れる。Pythonは1から5をrange(1,6)と書かざるをえないのがつらい。Perl、Ruby、PHPが「1から5」で人間から見れば素直。機械側に寄り添うのか人間様に寄り添うのかの思想の違い。

mapは後ろから前に持っていく子たち、関数として第一引数に無名関数を入れる子たちに別れる。Rubyのブロックが異彩を放つ。前から順に読めばいい。Rubyからプログラムを覚えた人は、他の言語でブロックではなく引数にコールバック関数を入れるという発想に慣れずに半日うろたえる。

2
1
3

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?