Help us understand the problem. What is going on with this article?

競プロにありがちな文字列をスペースで分割して整数値リストに変換するワンライナー

More than 3 years have passed since last update.

競プロにありがちな

0 1 2 3 4

のような文字列を[0, 1, 2, 3, 4]なリストに変換するワンライナー。読み込みは標準入力からを想定している。

Ruby

N = gets.split.map(&:to_i)

気持ちいい。

Perl

my @N = map { $_ + 0 } split ' ', <>;

数値に変換するために+0した。

Perl6

my @N = get().split(' ').map({.Int});

5に比べて若干Rubyっぽくなった。

Python

N = map(lambda s:int(s), raw_input().split(' '))

特に感想はない。

PHP

<?php $N = array_map('intval', explode(' ', trim(fgets(STDIN))));

爆発しそう。

Node.js

var N = require('fs').readFileSync('/dev/stdin', 'utf8').split(' ').map(Number);

Nodeに組み込みのモジュールだけだとこんな感じにしか書けないと思う。

Lua

local N = (function(n) for s in string.gmatch(io.read(), "[^%s]+") do table.insert(n, s) end return n end)({})

標準ライブラリが貧弱なのでワンライナーというにはちょっと無理がある感じになった。

Elixir

"" |> IO.gets |> String.trim_trailing |> String.split(" ") |> Enum.map(&String.to_integer(&1))

もっと賢いやり方があると思う。

nukosuke
オフトゥン大好き
http://nukosuke.hatenablog.jp/
mixi
全ての人に心地よいつながりを
http://mixi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away