From: Benoit Daloze Date: 2010-01-22T07:40:29+09:00 Subject: Re: an elegant way to modify all lines from file by using map() function? --0016e65b6230ac6881047db44b61 Content-Type: text/plain; charset=ISO-8859-1 Hi, 2010/1/21 RobertGawron > Hi all, > > I'm new in ruby and I just have a question: in python when I want to > read all lines from file, do something with all of them and then use > them in my program I use map function + lambda function, sth like > that: > > print map(lambda u: u.upper(), open("foo", "r").readlines()) > > but in your language I didn't find the way to create in one step array > of all lines from file, that could be used by map(). If I really want > to use map in this situation I have to use secondary array (called > arr) like in this snippet? > > arr = Array.new > File.open('foo').each_line{ |l| arr.push l } > p arr.collect{ |l| l.upcase } > > Please post a code-snippet, it's quite interesting to me :) > > Waow awesome how the order is in Python... Let's take the natural order, welcome to Ruby ! puts File.read('foo').lines.map { |line| line.upcase } That's in ruby 1.9 Notice lines is an Enumerator, that can be converted to an Array if needed by #to_a You got also IO.readlines --0016e65b6230ac6881047db44b61--