Differenza di risulatato tra p e puts

Ciao a tutti. Una curiosita’…lol
---------- Inizio codice ---------------
a = [1,2,3,4]
a.map { |i| i*2 }
p a
=>[1,2,3,4]
----------- Fine codice -----------------
Se invece i p usiamo puts il risultato e’
1
2
3
4
Ancora…usando print si ottiene
1234
Qualcuno sa’ spiegarmi perche’?
Grazie per la risposta.

— Giovanni C. [email protected] wrote:

3
4
Ancora…usando print si ottiene
1234
Qualcuno sa’ spiegarmi perche’?

in breve, se non ricordo male:
def p(*args)
args.each {|a| puts a.inspect }
end
def puts(*args)
args.each do |a|
if a.is_a? Array
a.each {|e| puts e}
else
print a.to_s+“\n”
end

  ___________________________________________________________

Yahoo! Answers - Got a question? Someone out there knows the answer. Try
it
now.

— gabriele renzi [email protected] wrote:

Se invece i p usiamo puts il risultato e’
1
2
3
4
Ancora…usando print si ottiene
1234
Qualcuno sa’ spiegarmi perche’?

in breve, se non ricordo male:

ah e ovviamente

def print(*args)
args.each {|x| STDOUT.sys_write(x.to_s)
end

e il poco noto scheme-ish

class Object
def display(out=STDOUT)
out.sys_write(self.to_s)
end
end

  ___________________________________________________________

Yahoo! Mail is the world’s favourite email. Don’t settle for less, sign
up for
your free account today
http://uk.rd.yahoo.com/evt=44106/*http://uk.docs.yahoo.com/mail/winter07.html

gabriele renzi wrote:

Grazie per le risposte!