/ / Descrizione di funzione strana foglio di lavoro scala - scala, intellij-14

descrizione della funzione strana scala foglio di lavoro - scala, intellij-14

Ho creato un Scala in Intellij Idea 14 Community Edition e ora sto provando a fare qualche scala pratica con esempi di base.

Quando creo una funzione, la funzionela descrizione che vedo nell'output compilato del foglio di lavoro mostra qualcosa di strano, c'è qualcosa di sbagliato nel mio compilatore di scala o Intellij o è un nuovo modo di mostrare la definizione della funzione in scala 2.10.6 (Nota: non sto usando SBT)

Java: 1.8 , OS: Mac OSX

isGoodEnough(guess: Double, x: Double) = math.abs(guess * guess - x) / x < 0.001

def improve(guess: Double, x: Double) = (guess + x / guess) / 2

def sqrtIter (guess : Double, x : Double) : Double =
if(isGoodEnough(guess, x)) guess
else sqrtIter(improve(guess, x), x)

def sqrt (x : Double) = sqrtIter(1, x)

sqrt(4)

Output mostrato da Scala Worksheet

isGoodEnough: isGoodEnough[](val guess: Double,val x: Double) => Boolean

improve: improve[](val guess: Double,val x: Double) => Double

sqrtIter: sqrtIter[](val guess: Double,val x: Double) => Double

sqrt: sqrt[](val x: Double) => Double

res0: Double = 2.000609756097561

Non riesco a capire perché mostra i nomi delle funzioni come isGoodEnough [], migliora [] nella definizione / descrizione della funzione

risposte:

1 per risposta № 1

In Scala puoi usare i generici quando vuoirendere una funzione generale. Ad esempio, la mia funzione di coda sotto agisce su una lista, ma non voglio specificare cosa c'è nella lista, solo il fatto che si tratta di una lista di qualcosa (che darò al segnaposto A)

def tail[A](l: List[A]): List[A] = ...

Quando lo fai, devi dire al compilatore di Scala su di esso - lo fai con le parentesi prima dei parametri.

[] In isGoodEnough [], improve [] ti sta mostrando che non hai alcun generico coinvolto