domingo, 12 de febrero de 2012

Scala IDE





Scala IDE
Ahora que tuve un poco de tiempo de probar varios lenguajes como: Scala, Ceylon, Clojure, etc. encontré este sitio Scala IDE http://scala-ide.org/

Se trata de un IDE (plugin) para crear programas en Scala desde Eclipse.

En Eclipse basta poner este link:




Y la verdad no pude evitarlo, quise probarlo con un código que hice en Groovy haber como quedaba:

object Horoscopo{

   def main(args: Array[String]){
      var resto=0;
      val anyos=List(1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012);
      var horos=""
      println("[Horoscopo chino en Scala]");
        for(val i <- anyos){
           resto=i%12
          
           if(resto==0){
              horos="mono"
            }
           if(resto==1){
              horos="gallo"
           }
          
           if(resto==2){
              horos="perro"
            }
           if(resto==3){
              horos="cerdo"
           }

           if(resto==4){
              horos="rata"
            }
           if(resto==5){
              horos="buey"
           }
          
           if(resto==6){
              horos="tigre"
            }
           if(resto==7){
              horos="conejo"
           }
           if(resto==8){
              horos="dragon"
           }

           if(resto==9){
              horos="serpiente"
            }
           if(resto==10){
              horos="caballo"
           }
          
           if(resto==11){
              horos="cabra"
            }
          
           println("si naciste en: "+i+" te corresponde el anyo del: "+horos)
          
         }
        
    }
}



Semejanzas con Groovy Python 

Horoscopo.groovy

def anyos=[1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012]
def resto=0
def horos=""
println "\t[Horoscopo chino en Groovy]\n"
for (int e:anyos){
  resto=e%12
  switch(resto){
  case 0:
                horos="mono"
                break
                case 1:
                horos="gallo"
                break
                case 2:
                horos="perro"
                break
                case 3:
                horos="cerdo"
                break
                case 4:
                horos="rata"
                break
                case 5:
                horos="buey"
                break
                case 6:
                horos="tigre"
                break
                case 7:
                horos="conejo"
                break
                case 8:
                horos="dragon"
                break
                case 9:
                horos="serpiente"
                break
                case 10:
                horos="caballo"
                break
                case 11:
                horos="cabra"
                break
  }



  println "Si nacistes en $e  te corresponde el signo: $horos "
}



Horoscopo.py

resto,i=0,0
horos=""
print "\t[Horoscopo chino en Python]\n"
for i in range(len(anyos)):
    resto=anyos[i]%12

    if resto==0:
        horos="mono"

    if resto==1:
        horos="gallo"

    if resto==2:
        horos="perro"

    if resto==3:
        horos="cerdo"

    if resto==4:
        horos="rata"

    if resto==5:
        horos="buey"


    if resto==6:
        horos="tigre"

    if resto==7:
        horos="conejo"

    if resto==8:
        horos="dragon"

    if resto==9:
        horos="serpiente"

    if resto==10:
        horos="caballo"

    if resto==11:
        horos="cabra"

    print "Si naciste en",anyos[i]," te corresponde el signo: ",horos






2 comentarios:

  1. Una manera mas sencilla de hacerlo en Scala y también en otros lenguajes sería algo como esto:

    val symbols = Map(
    0 -> "mono",
    1 -> "gallo",
    2 -> "perro",
    3 -> "cerdo",
    4 -> "rata",
    5 -> "buey",
    6 -> "tigre",
    7 -> "conejo",
    8 -> "dragon",
    9 -> "serpiente",
    10 -> "caballo",
    11 -> "cabra"
    )

    val year = args(0).toInt
    println("Si naciste en " + year + " tu simbolo chino es: " + symbols.get(year % 12))

    ResponderEliminar
  2. Gracias por el comentario, apenas estoy aprendiendo el lenguaje. Y si, cambia mucho.

    El problema es que sigo pensando en Java.

    ResponderEliminar