Snakes and rubies
Saturday, 19 April , 2008
Hace unos días que con Manuel Kaufmann (humitos) venimos comparando algunas cosas entre python y ruby, por simple curiosidad dado que son 2 lenguajes muy parecidos y que nos gustan mucho. Entonces se nos ocurrió escribir algunos problemas puntuales y sencillos para ver como los resuelve cada lenguaje, quiero aclarar que de ninguna manera queremos generar una guerra santa entre lenguajes ni mucho menos simplemente queremos divertirnos comparándolos. Entonces sin más vamos al grano, aquí va mi versión ruby de los ejercicios:
- Dado un array con nombres de persona eliminar los nombre que comienzan con “Pe”:
irb(main):005:0> ["Pablo", "Raul", "Pedro", "Pepe", "Ariel", "TerePe"].delete_if{|n| n =~ /^Pe/} =>["Pablo", "Raul", "Ariel", "TerePe"] - Verificar si el mismo array contiene el nombre “Raul”
irb(main):006:0> ["Pablo", "Raul", "Pedro", "Pepe", "Ariel", "TerePe"].include?(”Raul”) => true
- Generar un string con todos los nombres unidos por “-”
irb(main):009:0> ["Pablo", "Raul", "Pedro", "Pepe", "Ariel", "TerePe"].join(”-”) => “Pablo-Raul-Pedro-Pepe-Ariel-TerePe”
- Generar un segundo array con los nombres todos en minúsculas ordenado alfabéticamente
irb(main):012:0> (["Pablo", "Raul", "Pedro", "Pepe", "Ariel", "TerePe"].collect{|n| n.downcase}).sort => ["ariel", "pablo", "pedro", "pepe", "raul", "terepe"] - Desordenar el array:
irb(main):016:0> ["Pablo", "Raul", "Pedro", "Pepe", "Ariel", "TerePe"].sort_by{ rand } => ["TerePe", "Pedro", "Raul", "Pablo", "Pepe", "Ariel"] - Averiguar si la lista siguiente tiene números pares:
irb(main):017:0> [1, 2, 3, 4, 5].any?{|x| x % 2 == 0 } => true - Averiguar si toda la lista son números pares:
irb(main):018:0> [1, 2, 3, 4, 5].all?{|x| x % 2 == 0 } => false - Obtener el producto de una lista de números:
irb(main):023:0> [1, 2, 3, 4, 5].inject{|x,n| x * n } => 120 - Obtener el factorial de 9999:
irb(main):025:0> (1..9999).inject{|x,n| x * n }No voy a poner la salida del factorial por que es un número muuuuy….. largo pero lo pueden probar por uds mismos en el intérprete interactivo de ruby.
- Y por último averiguar si dos arrays son iguales:
irb(main):002:0> [1, 2, 3, 4, 5].eql? [1, 2, 3, 4, 5] => true
Todos los ejemplos se probaron con la versión 1.9 de ruby. Ahora para ver las versión python vamos a tener que estar atentos al blog de humitos

Saturday, 19 April , 2008 at 10:58 pm
[...] Levanto el guante del desafío que plantea Gastón en su blog: juanjo@albus:~$ python Python 2.5.1 (r251:54863, Mar 7 2008, 03:41:45) [GCC 4.1.2 (Ubuntu [...]
Saturday, 19 April , 2008 at 11:00 pm
Interesante. Yo hincho para humitos igual =P
(el último ejemplo te quedo con letra más chica)
Thursday, 24 April , 2008 at 10:31 pm
[...] profundas y no que quede solo de palabras, asique decidimos escribir un par de post al respecto. Este es el primero de él, la respuesta de Juanjo y ahora tiro algunas diferencias entre [...]