Sto cercando di capire il punto di questa caratteristica del linguaggio di più clausole sui parametri e perché lo usereste. Ad esempio, qual è la differenza tra queste due funzioni in realtà?Qual è il punto di più clausole di parametro nelle definizioni di funzione in Scala?
class WTF {
def TwoParamClauses(x : Int)(y: Int) = x + y
def OneParamClause(x: Int, y : Int) = x + y
}
>> val underTest = new WTF
>> underTest.TwoParamClauses(1)(1) // result is '2'
>> underTest.OneParamClause(1,1) // result is '2'
C'è qualcosa su questo nel Scala specification at point 4.6. Vedi se ha senso per te.
NB: la specifica chiama queste "clausole parametro", ma penso che alcune persone possano chiamarle anche "liste di parametri".
programmatore Nnon-scala qui. Forse è solo uno stile diverso? Non tutto deve avere solo un modo per farlo. – apscience
ok, c'è una piccola risposta a questo nella risposta di Daniel Sobral a http://stackoverflow.com/questions/4697404/scala-currying-by-nested-functions-or-by-multiple-parameter-lists –
accettato la risposta qui probabilmente risponde a questa domanda: (1) quindi non devi specificare il tipo dalla prima clausola param nella seconda clausola; (2) per la flessibilità della progettazione della biblioteca; (3) per rendere più facile il curry: http://stackoverflow.com/questions/4915027/two-ways-of-currying-in-scala-whats-the-use-case-for-each –