2017-04-05 2 views

Antwort

1

Sie haben factorial als param Element für Ihre def, das ist falsch. Versuchen:

def factorial(x:Int): Int = 
    if (x == 0) 1 
    else x * factorial(x - 1) 
3

Dieser Teil des Codes Sinn macht (syntaktisch, zumindest):

def factorial(...): Int = factorial(3) 

Was im ... geht die Argumente der Funktion sind. Sie wurden Anfahren fein mit x:Int

def factorial(x: Int, ...): Int = factorial(3) 

Aber dann geht es irgendwie aus den Schienen syntaktisch mit factorial(x=>{if(x==0)1 else x*factorial(x-1)}). Ich weiß nicht wirklich, was ich dazu sagen soll, außer dass es definitiv kein Funktionsargument ist. Das ist ein Ausdruck, das ist die Art der Sache, die Sie in den Funktionskörper setzen würden (nach der =), nicht in einer Argumentliste.