Blatt 12

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Blatt 12
Hallo,
12.2: könnte mir jemand sagen wie man für natural einen Stream[Long] erstellt, dachte eigentlich an .from(1) aber das geht nur für Integers…


Stream operator?


Stell mich blöd an, aber hab das schon probiert, aber bei mir gibt natural(0), natural(1), … immer das gleiche aus, also 1.


Für die Aufgabe ist eine Hilfsfunktion hilfreich, welche dir rekursiv den Stream erstellt.

Also:

[m]natHelper(1) = 1 #:: natHelper(2)
natHelper(2) = 2 #:: natHelper(3)
usw.[/m]

In der natural Methode rufst du dann nur noch deine Hilfsfunktion mit einem Startwert auf.


Okay, richtig also doch Hilfsfunktion, stimmt, dann geht das…thanks mate


Bei limit und intervall in 12.2 bekomm ich Probleme durch den Longwert der das Limit beschränkt, bei meinen ganzen Implementierungen die ich versucht habe gibt es immer die Fehlermeldung found: Long required Int raus. meine Ideen waren take und listeabstraktion…


Was ich nicht ganz verstehe ist, wo der Sinn von take und drop für Streams liegt wenn diese nur Integer Parameter annehmen, wo Streams häufig dazu da sind endlose Datenstrukturen zu erzeugen bzw. es sehr oft vorkommen kann, dass der Zugriff weit außerhalb von Integer liegt.


Probiers bei limit einmal mit takeWhile. Bei der interval kannst du obige Funktion limit und dropWhile benutzen. Bei beiden lässt sich dass dann in einer Zeile lösen :wink:


Hey Leute,

ich bin hier in 12.3 b) auf etwas gestoßen was ich irgendwie nicht verstehe.
Was könnte der Grund dafür sein, dass eine Null ignoriert wird wenn man Zahlen in einen Strom steckt??
Normalerweise sieht das ja so aus, am gleichen Beispiel:

BigInt(65) #:: BigInt(0) #:: BigInt(50) #:: “endlessStream” → Ausgabe List(65, 0, 50, 0, 0, …)

Das funktioniert auch generell. Im Grunde mache ich in meiner Implementierung von Funktion Split2 ähnliches und alles funktioniert, nur Nullen wie oben werden ignoriert. Die Ausgabe ist dann eben: List(65, 50, 0, 0, …)

??


Hat sich erledigt