sábado, outubro 14, 2006

Ruby

Estou aprendendo ruby, e estou achando ele uma linguagem muito legal. Gosto principalmente dos codeblocks, mas é interessante que por mais features que se adiciona em uma linguagem sempre fica uma que vc gosta de fora.

Algo que eu sinto muita falta é o REDUCE do lisp, veja este código em LISP:

(reduce #'max (mapcar #'parse-integer (split-sequence #Space "3 42 1")))


Não existe maneira mais elegante de splitar uma string e pegar a maior dos elementos. Ruby chega quase lá:

"3 42 1".split(" ").map {|x| x.to_i }


Consigo splitar e transformar em inteiros, porém, para achar o máximo eu tenho que usar uma variável a mais e fazer um código muito mais deselegante:

lst="3 42 1".split(" ").map {|x| x.to_i }
max=-1
lst.each do |x|
if (x > max)
max = x;
end
end

print max,"n"

Uma pena.