Curso Scala 1 - for Future nabs

DarkSoldier

MEDIAVIDA MEETS FUNCTIONAL

Pues eso

Algunos nos hemos apuntado al curso https://www.coursera.org/learn/progfun1 y abro este hilo (multipagina casi seguro) para ir resolviendo las dudas y demás :)

Suerte a todos!

HeXaN

¿Esto es el crossfit de la programación?

3 1 respuesta
DarkSoldier

#2 unete al rebaño

MTX_Anubis

el primero es el mismo que ya salió de Scala no? En su día se le dio bombo por aquí.

Era un poco básico pero para introducción al lenguaje estaba bien, los siguientes cursos de la especialización tienen mejor pinta aunque no hubiera estado de más meter futures y akka

1 respuesta
B

#4 Asi es. De hecho hay un hilo sobre programacion funcional.

N

Vamos a darle un try.

varuk

Pues lo voy a intentar a hacer, a ver si saco tiempo. Tenía ganas de que volvieran a hacer este curso. Menos mal que lo he visto a tiempo y no se me ha vencido el primer plazo, que suele ser normal en estos cursos.

Gracias ^^

N

Después instalar sbt en Windows 10 la consola no lo reconoce como un comando, ¿Alguna idea de porqué? ¿Le pasa a alguien más?

1 respuesta
varuk

#8 ¿Has hecho "sbt about"? Te instala cosas.

1 respuesta
N

#9

Nah, era cosa de rebootear la máquina. Vivo tanto en el front-end que a veces estas cosas se me olvidan xD

varuk

Por cierto. Para poder importar el proyecto ese de "example" y que se pueda importar (sacado del foro)

if you using eclipse, on the commandline, navigate to the project folder and do:

sbt compile

sbt eclipse.



That generate sbt eclipse project. Now do the import, it works.

1 respuesta
N

#11

No he tenido problema con IntelliJ. Creo.

1 respuesta
B

#12 Como lo hiciste en IntelliJ?

2 respuestas
p0stm4n

Me apunto, no puede ser mucho más difícil que aprender Haskell.

El único problema que veo, es tener la motivación y tiempo suficiente para verse todos los video y hacer los ejercicios.

HeXaN

#13 En IntelliJ, a mí me carga directamente sin problemas el proyecto de los ejercicios finales.

N

#13

He importado el proyecto y el propio IDE te soluciona los problemas.

m4andg4

el sbt es un controlador de versiones?

2 respuestas
N

#17

No he leído nada sobre él pero a priori parece algo más tipo Maven.

1 respuesta
HeXaN

#17 #18 Es más del palo Maven, sí.

1 respuesta
m4andg4

#19 Va, pues va a ser la primera vez que utilice algo parecido.

1 respuesta
N

#20

¿Has trabajado en front-end? Bower hace un rol similar.

p0stm4n

Para que os reconozca el sbt por consola, teneís que ir a C:\Program Files (x86)\sbt\bin y ejecutar el .bat, aparecerá una ventana de consola que se estará bajando los paquetes.

Cuando termine os habrá agregado la ruta de arriba al path y abriendo una consola nueva ya podeís usar el sbt y escribir sbt about.

EDIT: También recordar reiniciar el IntelliJ.
EDIT2: Bueno conseguí subir el primer ejercicio, me parece una putada que no expliquen la sintaxis y tenga que buscar en sitios como http://www.tutorialspoint.com/scala, para encontrar pistas de cómo es la sintaxis y deberian por lo menos explicar algo tan básico como las celdas cons, sino ahora mismo la gente que no sepa se va a perder.

Pistas:

def factorial(n: BigInt): BigInt = {  
if (n <= 1) 1
else
n * factorial(n - 1) }

https://en.wikipedia.org/wiki/Cons, métodos head y tail.

1 respuesta
varuk

#22 ¿Es que no has hecho el de introducción? El que te pide una sumar los elementos de una lista y otro, en el mismo fichero, que te dice que devuelvas el máximo de todos los números de la lista.

Es el ejercicio ese 0, que dice que no puntúa, pero ahí en el código te explica el uso de los métodos "head" y "tail" y es un poco introducción (aunque no explica la teoría, como tu has puesto)

PD: Creo que soy el único que está usando Eclipse. He tirado por Eclipse porque ya viene todo configurado directamente para descargar y ejecutar.

m4andg4

Soy el único que está utilizando eclipse? no tiene ni la mitad de funcionalidad que con java.

PD: me está dando cancer utilizar tanto la consola de windows.

2 respuestas
MTX_Anubis

#24 Yo uso sublime text + consola para mi día a dia xD

Puedes usar el scala ide que está basado en eclipse que además tenéis worksheets para poder probar código en vivo.

https://github.com/scala-ide/scala-worksheet/wiki/Getting-Started

tambien se puede entrar en el repl desde sbt

N

No sé qué manía le tenéis al pobre IntelliJ... ¡Pero si me empieza a gustar el backend desde que lo uso!

varuk

#24 mmmm Yo también uso Eclipse y compilo y ejecuto con Eclipse xD. La consola la uso sólo para el SBT, para hacer el submit de las entregas.

Hazte una clase MAIN. Lo explican en el curso:

Using a Main Object

In eclipse, right-click on the package example in src/main/scala and select “New” - “Scala Object”.

Use Main as the object name (any other name would also work)
Confirm by clicking “Finish”

In order to make the object executable it has to extend the type App. Change the object definition to the following:

object Main extends App {
  println(Lists.max(List(1,3,2)))
}

Now the Main object can be executed. In order to do so in eclipse:

Right-click on the file Main.scala
Select “Run As” - “Scala Application”
You can also run the Main object in the sbt console by simply using the command run.

Otra forma, más parecida a Java (y menos limpia) es hacer un objeto como antes pero codearlo así, con el método main, y ejecutarlo:

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, world!")
  }
}
1 respuesta
m4andg4

#27 Nah el manejo de scala lo he pillado al vuelo, me gusta lo de heredar de App para hacer ejecutables las clases.
El sida viene del sbt jajaja

1 respuesta
varuk

#28 Si el sbt solo se usa ahí para hacer el submit.

  1. Te pones en la carpeta de tu proyecto con la consola
  2. Inicias el SBT
  3. Ejecutas el comando: submit [email protected] token_coursera

Se manda el ejercicio y ale... a correr.

1 respuesta
m4andg4

#29 Pues me parece que solo lo voy a usar para eso. Lo demás lo gestiono desde eclipse más sencillamente.

1