Ullus Parvus
Grünschnabel
Dabei seit: 05.12.2010
Beiträge: 1
|
|
Haskell: Arbeiten mit unendlichen Listen |
|
Hi,
ich habe zwei Funktionen geschrieben, die mir 2 Arten von unendlichen Listen erzeugen.
Zum einen
fromN :: Integer -> [Integer]
fromN n = [n..]
und
fromNM :: Integer -> Integer -> [Integer]
fromNM n m = [n, m..]
Da hört's dann mit meinem Können aber auch schon auf.
Ich soll jetzt
1. eine Funktion summ :: [Integer] -> [Integer] schreiben,
die für eine unendliche Liste die Liste der Summen benachbarter Zahlen als unendliche Liste zurückgibt.
Lösungsansatz:
summ :: [Integer] -> [Integer]
summ [ ] = 0
summ (x:xs) = (x+xs) : (summ xs)
funktioniert nicht.
2. einen Wert oneZero :: [Interger] definieren, welcher die Liste repräsentiert, die mit eins anfängt und dann undendlich viele Nullen enthält.
oneZero :: [Integer]
oneZero n = [10..]
funktioniert auch nicht.
3. eine Funktion dropDivN :: Int -> [Integer] -> [Integer] schreiben, welche aus einer undendlichen Liste von Zahlen alle entfernt, die durch die übergebene Zahl n teilbar sind.
4. die Funktion dropDivN verwenden, um nach dem Prinzip des "Sieb des Eratosthenes" den Wert primes :: [Integer] zu definieren, der die undendliche Liste aller Primzahlen darstellt.
Ich sitze bestimmt schon 2 Stunden an dem Kram, ohne auch nur das Gefühl zu haben, weiterzukommen.
Wäre schön, wenn mir jemand hilft.
Danke.
Liebe Grüße
|
|