Seite 1 von 1

Type of _ * _

Verfasst: 27. Feb 2017 18:04
von GS-812
Hallo Zusammen,

hatten wir schon mal in der Übung besprochen, finde es aber gerade nicht.

Wie kann ich den Typ für

Code: Alles auswählen

_ * _
angeben?

Aktuell erkennt er nicht, da ich nicht richtig sage, dass es ein Int ist.

Code: Alles auswählen

def factorialFolding(n: Int): Int = {
    fold(2 to n toList, (x : Int,y: Int) => x * y, 1)
  }
  
  def factorialFoldingNotWorking(n: Int): Int = {
    fold(2 to n toList, _ * _: (Int,Int), 1)
  }
 
Gruß

Georg

Re: Type of _ * _

Verfasst: 27. Feb 2017 18:12
von 0b101101101
Hm, ich hatte das Problem auch mal. Aber _*_ ist natürlich kein Int. Es ist auch kein Tupel.

Denn es ist eine Funktion. Ich bin mir nicht sicher, aber probier mal so: (_*_ : (Int, Int)=>Int)
Alternativ müsstest du auch den Typ des Folds angeben können: fold[Int](2 to n toList, _*_, 1)

Re: Type of _ * _

Verfasst: 27. Feb 2017 19:06
von GS-812
Danke

Code: Alles auswählen

fold[Int,Int](2 to n toList, _ * _, 1)
geht.

Code: Alles auswählen

fold(2 to n toList, (_*_) : (Int, Int) => Int, 1)
geht.

Laut IDEA "Unnecessary parentheses" bei "(_*_)" aber ohne geht es nicht.