ZF-Notation < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 21:31 So 09.12.2007 | Autor: | ycle |
Aufgabe | Erzeugen Sie die folgenden Listen duch Verwendung der ZF-Notation, also mit List Comprehension:
a) Liste der Paare aus Kleinbuchstaben und ihrer Stelle im Alphabet von (a,1) bis (z,26); |
Ist das korrekt?
[(c,n)| c <-['a'..'z'], n <-[1..26]]
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 23:20 So 09.12.2007 | Autor: | Bastiane |
Hallo ycle!
> Erzeugen Sie die folgenden Listen duch Verwendung der
> ZF-Notation, also mit List Comprehension:
Was ist denn die ZF-Notation?
> a) Liste der Paare aus Kleinbuchstaben und ihrer Stelle im
> Alphabet von (a,1) bis (z,26);
> Ist das korrekt?
>
> [(c,n)| c <-['a'..'z'], n <-[1..26]]
Das erinnert mich irgendwie an Haskell. Da würde es wohl erzeugen: [(a,1),(a,2),(a,3),...,(a,26),(b,1),(b,2),...,(b,26),...,(z,26)] (sofern ich mich da jetzt in der "Auswertungsreihenfolge" nicht vertue...). Sollte das so sein? Ich verstehe die Aufgabe eher als [(a,1),(b,2),(c,3),...,(z,26)].
Viele Grüße
Bastiane
|
|
|
|
|
Hallo,
ich stimme Bastiane vollkommen zu.
Wenn ihr nicht gerade den GHC benutzt, dann muss man entweder eine Zusatzbedingung formulieren oder nur mit einem Generator und einer zusätzlichen Funktion arbeiten. Also:
[(c,n) | c <- ['a'..'z'], n <- [1..26], fromEnum c == n + 96]
oder
[(c,fromEnum c - 96) | c <- ['a'..'z'] ]
Beim GHC soll die parallele Auswertung mehrerer Generatorausdrücke möglich sein per:
[(c,n)| c <-['a'..'z'] | n <-[1..26]]
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 00:49 Mo 10.12.2007 | Autor: | ycle |
Wir arbeiten mit WinHugs.
Ich hatte mir eine ähnliche Lösung überlegt, ging allerdings davon aus, dass das Verwenden fremder Funktionen in so einer Notation nicht erlaubt ist.
Die Funktion (in diesem Fall fromEnum - ginge nicht auch ord?) muss in der Notation tatsächlich nicht deklariert werden?
Vielen Dank übrigens für euer Engagement, tolle Seite! Wenn ich soweit bin, werde ich mich auch als Erklärbär beteiligen ;)
|
|
|
|
|
Hallo,
> Wir arbeiten mit WinHugs.
OK, ich auch. Das kann diese schöne Notation nicht...
> Ich hatte mir eine ähnliche Lösung überlegt, ging allerdings davon aus, dass das Verwenden fremder Funktionen in so einer Notation nicht erlaubt ist.
Generell ist alles möglich, ich weiß nur nicht, wie streng das bewertet wird. Etwas Besseres ist mir auch nicht eingefallen.
> Die Funktion (in diesem Fall fromEnum - ginge nicht auch ord?) muss in der Notation tatsächlich nicht deklariert werden?
In Haskell muss man gar nichts deklarieren. Da Chars benutzt werden und diese zu Enum gehören, kann man fromEnum benutzen.
ord kann man natürlich auch benutzen. Das gehört ja direkt zu Char. Ich war nur nicht darauf gekommen, weil man da das Modul noch laden muss...
Gruß
Martin
|
|
|
|