CountDown Methode - Eclipse < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:17 Mo 17.11.2008 | Autor: | scaary |
Aufgabe | Schreiben Sie eine Funktion countDown, die eine (nicht-negative) Zahl n als Argument
erh¨alt und die Liste [n,n-1,...,1,0] liefert. Zum Beispiel ist
countDown 3 = [3,2,1,0]
countDown 0 = [0]
Hinweis: Benutzen Sie Rekursion (was ist der Zusammenhang zwischen countDown
n und countDown (n-1) ?). Mit dem Listenkonstruktor : k¨onnen Sie am Anfang
einer Liste ein Element anf¨ugen: 3 : [2,1,0] = [3,2,1,0]. |
Hi.
Ich bin haskellanfaenger (muss leider da mein prof das will), hab aber schon Ahnung durch java.
Meine Loesung zu oben genannter Aufgabe waere wie folgt:
"module CountDown where
countDown :: Integer -> [Integer]
countDown n = if n == 0 then [0]
else n : countDown (n-1)"
Ich benutze Eclipse 3.4.1 mit Haskell Plugin. Ich verstehe leider nicht, was der Fehler hier zu bedeuten hat:
GHCi, version 6.10.1: http://www.haskell.org/ghc/ : for help
Loading package ghc-prim ... linking ... done.
Loading package integer ... linking ... done.
Loading package base ... linking ... done.
[1 of 1] Compiling CountDown ( [mm] C:\Documents [/mm] and [mm] Settings\SascFailed, [/mm] modules loaded: none.
Prelude> [mm] ha\My Documents\Eclipse Workspace\Haskell\src\CountDown.hs, [/mm] interpreted )
[mm] C:\Documents [/mm] and [mm] Settings\Sascha\My Documents\Eclipse Workspace\Haskell\src\CountDown.hs:6:0:
[/mm]
parse error (possibly incorrect indentation)
Das ist die Fehlermeldung, die mir eclipse wirft, wenn ich das Programm ausfueren lassen will :(
Kann mir jemand helfen und sagen ,woran das liegt?
Dankeschoen im Voraus.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:08 Mo 17.11.2008 | Autor: | rainerS |
Hallo!
> Schreiben Sie eine Funktion countDown, die eine
> (nicht-negative) Zahl n als Argument
> erh¨alt und die Liste [n,n-1,...,1,0] liefert. Zum
> Beispiel ist
> countDown 3 = [3,2,1,0]
> countDown 0 = [0]
> Hinweis: Benutzen Sie Rekursion (was ist der Zusammenhang
> zwischen countDown
> n und countDown (n-1) ?). Mit dem Listenkonstruktor :
> k¨onnen Sie am Anfang
> einer Liste ein Element anf¨ugen: 3 : [2,1,0] =
> [3,2,1,0].
> Hi.
> Ich bin haskellanfaenger (muss leider da mein prof das
> will), hab aber schon Ahnung durch java.
>
> Meine Loesung zu oben genannter Aufgabe waere wie folgt:
>
>
> "module CountDown where
>
> countDown :: Integer -> [Integer]
> countDown n = if n == 0 then [0]
> else n : countDown (n-1)"
>
> Ich benutze Eclipse 3.4.1 mit Haskell Plugin. Ich verstehe
> leider nicht, was der Fehler hier zu bedeuten hat:
>
> GHCi, version 6.10.1: http://www.haskell.org/ghc/ : for
> help
> Loading package ghc-prim ... linking ... done.
> Loading package integer ... linking ... done.
> Loading package base ... linking ... done.
> [1 of 1] Compiling CountDown ( [mm]C:\Documents[/mm] and
> [mm]Settings\SascFailed,[/mm] modules loaded: none.
> Prelude> [mm]ha\My Documents\Eclipse Workspace\Haskell\src\CountDown.hs,[/mm]
> interpreted )
>
> C:\Documents and Settings\Sascha\My Documents\Eclipse Workspace\Haskell\src\CountDown.hs:6:0:
>
> parse error (possibly incorrect indentation)
Die Fehlermeldung gibt den entscheidenden Hinweis: du hast die "else"-Zeile nicht eingerückt.
In Haskell ist es wichtig, entweder gescheifte Klammern zu verwenden oder einzurücken.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 00:23 Di 18.11.2008 | Autor: | scaary |
Ahh, OKa, vielen lieben Dank, zumindest weiss ich jetzt ,dass mein Eclipse funktioniert!! Danke!!
Ok, ich hab das Problem jetzt auch entsprechend deinen Anweisungen behoben, habe jetzt aber leide rnoch das Problem, dass mir keine Liste ausgegeben wird, sondern eine einzelne Int:
module CountDown where
countDown :: Integer -> [Integer]
countDown n = if n == 0
then [0]
else n : countDown (n-1)
Console:
*Ggt> 3
3
*Ggt> 4
4
*Ggt>
Was genau muss ich machen ,damit er mir die entsprechende Liste ausgibt (also: [3, 2, 1, 0])
Danke !!!!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:46 Di 18.11.2008 | Autor: | rainerS |
Hallo!
> Console:
> *Ggt> 3
> 3
> *Ggt> 4
> 4
> *Ggt>
>
>
> Was genau muss ich machen ,damit er mir die entsprechende
> Liste ausgibt (also: [3, 2, 1, 0])
Du musst die Funktion schon aufrufen: countDown 4
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:11 Di 18.11.2008 | Autor: | scaary |
Ahhhhhsooo., ohhh, ich dachte, dass macht eclipse automatisch, ich dummie :P
Hab vielen lieben Dank fuer deine Antwort!!!!!! (auch wenn meine Frage etwas dumm gewesen ist).
|
|
|
|