17/05/19 20:57:32.26 EInD1neL.net
>>485をHaskell(読みやすくしてみた)、Ruby、Pythonで書いてみた。
Haskell
import System.Environment
makeList cs f = take (length cs `div` 2) [cs!!x | x <- [0..], f x]
zipArgs args = zip evenList oddList
where
evenList = makeList args even
oddList = makeList args odd
main = getArgs >>= print.zipArgs
Ruby
evenarry,oddarry = [],[]
ARGV.each_with_index{|line, i|
evenarry.push line if i.even?
oddarry.push line if i.odd?
}
evenarry.zip(oddarry){|x,y| print [x,y] } if evenarry.size < oddarry.size
oddarry.zip(evenarry){|y,x| print [x,y] } if evenarry.size >= oddarry.size
puts
Python
import sys
evenList = [arg for i, arg in zip(range(len(sys.argv[1:])),sys.argv[1:]) if i % 2 == 0]
oddList = [arg for i, arg in zip(range(len(sys.argv[1:])),sys.argv[1:]) if i % 2 == 1]
for (x,y) in zip(evenList,oddList):
____print((x,y), end = '')
print()