www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Haskell" - Haskell
Haskell < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Haskell: vermutlich einfache Aufgabe
Status: (Frage) beantwortet Status 
Datum: 21:11 Di 25.10.2005
Autor: Bastiane

Hallo!

Folgender Datentyp ist gegeben, um XML-Dokumente darzustellen (in Haskell):

type Name = String
data XML = Text String | Tag Name [XML]
[mm] \;deriving [/mm] (Show, Eq, Ord)

Vielleicht kann mir da auch jemand mal kurz erklären, was "type Name" bedeutet. "data XML" bedeutet, dass ein neuer Datentyp XML erstellt wird, der entweder aus "Text String" oder aus "Tag Name [XML]" besteht. Wobei ich mir auch nicht so ganz sicher bin, was genau das heißen soll - es scheint so, als würde das Wort "Text" einfach ausgegeben, gefolgt von einem String, und genauso das Wort "Tag" gefolgt von einem Name, wobei Name wohl (wegen der ersten Zeile) aus einem String besteht, gefolgt von einer Liste (die eckigen Klammern bedeuten eine Liste), in der wiederum ein Element vom Typ XML steht. (Für eine verständliche Erklärung, was obiges bedeutet, wäre ich sehr dankbar...)

Hier noch kurz ein Beispiel, wie das XML-Dokument

<PLAY>
<TITLE>The Comedy of Errors</TITLE>
<PERSONAE>
<TITLE>Dramatis Personae</TITLE>
<PERSONA>BALTHAZAR, a merchant</PERSONA>
<PERSONA>ANGELO, a goldsmith.</PERSONA>
</PERSONAE>
</PLAY>

durch obiges in Haskell dargestellt wird:

ex  =  Tag "PLAY"
   [Tag "TITLE" [Text "The Comedy of Errors"],
         Tag "PERSONAE"
          [Tag "TITLE" [Text "Dramatis Personae"],
           Tag "PERSONA" [Text "BALTHAZAR, a merchant"],
           Tag "PERSONA" [Text "ANGELO, a goldsmith."]]]

Nun ist die Aufgabe, eine Funktion zu schreiben, die überprüft, ob ein XML-Dokument einen gegebenen Tag enthält, also z. B. bei dem Beispiel hier:

contains ex "PERSONA"

würde "True" ergeben.

Eigentlich hört sich die Aufgabe nicht so schwierig an, finde ich, aber ich weiß gar nicht so wirklich, wo ich anfangen soll. Also, der Typ der Funktion soll sein (die zwei Doppelpunkte geben den Typ des Linksstehenden an):

contains :: XML -> Name -> Bool

Ich hab schon angefangen mit

contains a "" = True

dass also quasi Nichts immer enthalten ist (wobei ich mir gerade gar nicht mehr so sicher bin, ob das Sinn macht...). Aber was muss ich denn nun machen?

Irgendwie kann ich nicht mal mein Problem richtig erklären - vielleicht hilft es, wenn mir jemand diesen Datentyp da oben etwas besser erklärt.

Würde mich über eine Hilfe sehr freuen.

Viele Grüße
Bastiane
[banane]


        
Bezug
Haskell: Antwort
Status: (Antwort) fertig Status 
Datum: 00:23 Do 27.10.2005
Autor: Frank05


> Hallo!

Hallo,

> Folgender Datentyp ist gegeben, um XML-Dokumente
> darzustellen (in Haskell):
>  
> type Name = String
>  data XML = Text String | Tag Name [XML]
>   [mm]\;deriving[/mm] (Show, Eq, Ord)
>  
> Vielleicht kann mir da auch jemand mal kurz erklären, was
> "type Name" bedeutet. "data XML" bedeutet, dass ein neuer
> Datentyp XML erstellt wird, der entweder aus "Text String"
> oder aus "Tag Name [XML]" besteht.

Und mit
type Name = String
definierst du nur einen neuen Typ mit dem Namen "Name", der synonym zum Typ String ist. Du kannst stattdessen auch einfach String verwenden, aber auf diese Art ist klarer ausgedrückt, was die Bedeutung sein soll (und wird entsprechend dann auch in der Typisierung mit beachtet).

> Wobei ich mir auch nicht
> so ganz sicher bin, was genau das heißen soll - es scheint
> so, als würde das Wort "Text" einfach ausgegeben, gefolgt
> von einem String, und genauso das Wort "Tag" gefolgt von
> einem Name, wobei Name wohl (wegen der ersten Zeile) aus
> einem String besteht, gefolgt von einer Liste (die eckigen
> Klammern bedeuten eine Liste), in der wiederum ein Element
> vom Typ XML steht. (Für eine verständliche Erklärung, was
> obiges bedeutet, wäre ich sehr dankbar...)

So ein XML Datum kann entweder nur ein Text, oder ein Tag sein. Um das zu unterscheiden enthält jedes Datum so einen Marker. Wenn es sich um einen Text handelt, dann ist als Inhalt dieses Texts nur ein einfacher String erlaubt und wenn es sich um ein Tag handelt, so braucht dieses eben einen Namen und kann noch beliebig viele XML-Daten enthalten, was durch diese Liste ausgedrückt wird.

> Hier noch kurz ein Beispiel, wie das XML-Dokument
>
> <PLAY>
>  <TITLE>The Comedy of Errors</TITLE>
>  <PERSONAE>
>  <TITLE>Dramatis Personae</TITLE>
>  <PERSONA>BALTHAZAR, a merchant</PERSONA>
>  <PERSONA>ANGELO, a goldsmith.</PERSONA>
>  </PERSONAE>
>  </PLAY>
>  
> durch obiges in Haskell dargestellt wird:
>  
> ex  =  Tag "PLAY"
>     [Tag "TITLE" [Text "The Comedy of Errors"],
>           Tag "PERSONAE"
>            [Tag "TITLE" [Text "Dramatis Personae"],
>             Tag "PERSONA" [Text "BALTHAZAR, a merchant"],
>             Tag "PERSONA" [Text "ANGELO, a goldsmith."]]]
>  
> Nun ist die Aufgabe, eine Funktion zu schreiben, die
> überprüft, ob ein XML-Dokument einen gegebenen Tag enthält,
> also z. B. bei dem Beispiel hier:
>  
> contains ex "PERSONA"
>  
> würde "True" ergeben.
>  
> Eigentlich hört sich die Aufgabe nicht so schwierig an,

Ist sie auch nicht :-)

> finde ich, aber ich weiß gar nicht so wirklich, wo ich
> anfangen soll. Also, der Typ der Funktion soll sein (die
> zwei Doppelpunkte geben den Typ des Linksstehenden an):
>  
> contains :: XML -> Name -> Bool
>  
> Ich hab schon angefangen mit
>  
> contains a "" = True
>  
> dass also quasi Nichts immer enthalten ist (wobei ich mir
> gerade gar nicht mehr so sicher bin, ob das Sinn macht...).

Das hängt wohl eher von der konkreten Aufgabenstellung ab, was bei der Suche nach 'leeren' Namen passieren soll. Für die eigentliche Lösung ist dieser Spezialfall daher eher uninteressant.

> Aber was muss ich denn nun machen?

Da es für so einen XML Wert ja zwei Möglichkeiten gibt müssen wir entsprechend auch beide betrachten:

1. contains (Text str) name = ...
Da du aber nur nach Tags suchst und in dem Text nur ein unwichtiger String ist kann es hier wohl nichts mehr geben, also False.

2. contains (Tag tname rest) name = ...
Falls es sich jedoch um ein Tag handelt kann es sein, dass du schon das gesuchte Tag gefunden hast. Dazu musst du eben tname mit name vergleichen. Wenn es nicht passt kann es aber sein, dass in rest noch mehr Tags enthalten sind. Um das festzustellen musst du jetzt noch rekursive Aufrufe von contains machen. Da rest ja vom Typ [XML] ist muss also für jeden Wert in dieser Liste geprüft werden, ob das Tag enthalten ist und wenn einmal True geliefert wird reicht das auch (also 'Veroderung' der Ergebnisse).

contains :: XML -> Name -> Bool
contains (Text str) name = False
contains (Tag tname rest) name = if tname == name
    then True
    else or (map [mm] (\backslash [/mm] x -> contains x name) rest)


Bezug
                
Bezug
Haskell: Verständnisfrage
Status: (Frage) beantwortet Status 
Datum: 15:11 Do 27.10.2005
Autor: Bastiane

Hallo Frank05!

Erstmal vielen Dank für deine Antwort - ich hatte schon fast befürchtet, dass sich keiner für Haskell interessiert und deswegen auch keiner damit auskennt...

> > type Name = String
>  >  data XML = Text String | Tag Name [XML]
>  >   [mm]\;deriving[/mm] (Show, Eq, Ord)
>  >  
> > Vielleicht kann mir da auch jemand mal kurz erklären, was
> > "type Name" bedeutet. "data XML" bedeutet, dass ein neuer
> > Datentyp XML erstellt wird, der entweder aus "Text String"
> > oder aus "Tag Name [XML]" besteht.
>  
> Und mit
>  type Name = String
>  definierst du nur einen neuen Typ mit dem Namen "Name",
> der synonym zum Typ String ist. Du kannst stattdessen auch
> einfach String verwenden, aber auf diese Art ist klarer
> ausgedrückt, was die Bedeutung sein soll (und wird
> entsprechend dann auch in der Typisierung mit beachtet).

Ah - das hat schon mal geholfen. Ich habe nämlich immer "data ..." für eine Typdefinition gehalten, aber wenn ich das jetzt richtig verstehe, definiert "data" einen Datentyp, der dann aus einzelnen "Teilen" (weiß gerade nicht, wie das richtig heißt) besteht, und type definiert halt wirklich nur einen Typ.

> So ein XML Datum kann entweder nur ein Text, oder ein Tag
> sein. Um das zu unterscheiden enthält jedes Datum so einen
> Marker. Wenn es sich um einen Text handelt, dann ist als
> Inhalt dieses Texts nur ein einfacher String erlaubt und
> wenn es sich um ein Tag handelt, so braucht dieses eben
> einen Namen und kann noch beliebig viele XML-Daten
> enthalten, was durch diese Liste ausgedrückt wird.

Das heißt, dass die Worte Text bzw. Tag auch ausgegeben werden, dient nur dazu, dass man weiß, ob es sich um einen Text oder einen Tag handelt. [lichtaufgegangen]
  

> > Ich hab schon angefangen mit
>  >  
> > contains a "" = True
>  >  
> > dass also quasi Nichts immer enthalten ist (wobei ich mir
> > gerade gar nicht mehr so sicher bin, ob das Sinn macht...).
>
> Das hängt wohl eher von der konkreten Aufgabenstellung ab,
> was bei der Suche nach 'leeren' Namen passieren soll. Für
> die eigentliche Lösung ist dieser Spezialfall daher eher
> uninteressant.

Ja, genau. Ich habe jetzt eine Fehlermeldung ausgeben lassen mit dem Text: "Nix ist Nix. ;-)" - find ich gut. ;-)
  

> > Aber was muss ich denn nun machen?
>  
> Da es für so einen XML Wert ja zwei Möglichkeiten gibt
> müssen wir entsprechend auch beide betrachten:
>  
> 1. contains (Text str) name = ...
>  Da du aber nur nach Tags suchst und in dem Text nur ein
> unwichtiger String ist kann es hier wohl nichts mehr geben,
> also False.

Hier frage ich mich aber jetzt schon, wo denn bei dem Beispiel "contains ex "PERSONA"" das ex hingehört. Irgendwie verstehe ich das nämlich nicht. ex ist doch vom Typ XML, also kann es ja durch "contains ex "PERSONA"" aufgerufen werden. Wenn du nun aber schreibst "contains (Text str)", dann ist (Text str) zwar auch vom Typ XML, aber ich verstehe nicht, wie da das ex z. B. hinpassen könnte. Verstehst du, wo mein Problem liegt?
Und noch eine kleine Frage nebenbei: Warum schreibst du Text str und nicht Text String? Das müsste doch eigentlich auch gehen und würde eher kenntlich machen, dass die beiden Fälle von XML "untersucht" werden.

> 2. contains (Tag tname rest) name = ...
>  Falls es sich jedoch um ein Tag handelt kann es sein, dass
> du schon das gesuchte Tag gefunden hast. Dazu musst du eben
> tname mit name vergleichen. Wenn es nicht passt kann es
> aber sein, dass in rest noch mehr Tags enthalten sind. Um
> das festzustellen musst du jetzt noch rekursive Aufrufe von
> contains machen. Da rest ja vom Typ [XML] ist muss also für
> jeden Wert in dieser Liste geprüft werden, ob das Tag
> enthalten ist und wenn einmal True geliefert wird reicht
> das auch (also 'Veroderung' der Ergebnisse).
>  
> contains :: XML -> Name -> Bool
>  contains (Text str) name = False
>  contains (Tag tname rest) name = if tname == name
>      then True
>      else or (map [mm](\backslash[/mm] x -> contains x name) rest)

Erst noch kurz wieder eine eigentlich unwichtige Frage: Wie kommst du auf "tname"? Naja, wahrscheinlich kann man hier nicht nur "name" schreiben, da es sonst mit dem name dahinter Probleme macht. Aber wofür soll das t stehen? Mir ist klar, dass das wohl total egal ist, wie ich das nenne, aber meistens ist das ja eine Abkürzung für irgendwas, und wofür das würde mich jetzt nur mal interessieren.
Und dann wollte ich noch fragen, was (map [mm](\backslash[/mm] x -> contains x name) rest) genau bedeutet. Ich habe schon in meinem schlauen Buch nachgeschaut und festgestellt, dass map so definiert ist:

map f [] = []
map f (x:xs) = f x : map f xs

Nun weiß ich aber nicht so ganz, was hier x und xs ist. Nach diese Definition von map müsste oben ja die Klammer die Funktion sein und rest entspricht dann (x:xs). Aber was bedeutet denn der Pfeil hinter dem x? Und was bedeutet der Backslash?

Und kann man dann evtl. statt map noch was anderes schreiben - das hatten wir nämlich noch nicht. Aber notfalls kann ich es ja quasi rückgängig machen, dass ich statt map einfach die Definition von map "einsetze" (falls du verstehst, was ich meine.... aber das ist erstmal nicht ganz so wichtig)

Sorry für die vielen Nachfragen. Aber ich würde das gerne komplett verstehen. Wäre schön, wenn du mir nochmal helfen könntest - muss die Aufgabe am Montag morgen abgeben, bis dahin hätte ich das gerne verstanden.

Viele Grüße und nochmal danke für die bisherige Hilfe
Bastiane
[banane]


Bezug
                        
Bezug
Haskell: immer noch Interesse
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:55 So 30.10.2005
Autor: Bastiane

Hallo!

Wer auch immer mir hier hoffentlich noch helfen kann - morgen früh gucke ich hier nochmal rein, falls mir bis dahin jemand geantwortet hat, wäre das ganz toll. :-) Ansonsten bin ich auf jeden Fall noch bis mindestens Donnerstag morgen an einer Antwort interessiert, da wir frühestens da die Aufgaben besprechen werden (wenn überhaupt...).

Viele Grüße
Bastiane
[cap]


Bezug
                        
Bezug
Haskell: Antwort
Status: (Antwort) fertig Status 
Datum: 10:19 Mo 31.10.2005
Autor: Frank05


> Erstmal vielen Dank für deine Antwort - ich hatte schon
> fast befürchtet, dass sich keiner für Haskell interessiert
> und deswegen auch keiner damit auskennt...

In diesem Forum vielleicht nicht, aber es gibt viele Haskell-Jünger da draußen ;-)

> > 1. contains (Text str) name = ...
>  >  Da du aber nur nach Tags suchst und in dem Text nur ein
> > unwichtiger String ist kann es hier wohl nichts mehr geben,
> > also False.
>  
> Hier frage ich mich aber jetzt schon, wo denn bei dem
> Beispiel "contains ex "PERSONA"" das ex hingehört.
> Irgendwie verstehe ich das nämlich nicht. ex ist doch vom
> Typ XML, also kann es ja durch "contains ex "PERSONA""
> aufgerufen werden. Wenn du nun aber schreibst "contains
> (Text str)", dann ist (Text str) zwar auch vom Typ XML,
> aber ich verstehe nicht, wie da das ex z. B. hinpassen
> könnte. Verstehst du, wo mein Problem liegt?

Ja. Im Verständnis, wie Haskell das Pattern-Matching durchführt, um die
richtige Regel anzuwenden. Also zu allererst ist durch die Typdeklaration
schon bekannt, dass das erste Argument vom Typ XML sein muss. Jetzt kannst
du natürlich
contains ein_xml name = ...
schreiben. Aber du hast sicher schon die Möglichkeit kennengelernt eine Funktion
über sog. Muster zu definieren (einfachster Fall sind immer die Funktionen, die
eine Liste erwarten und eine Definition mit [] aufweisen). Im Fall des selbstdef.
XML Typs gibt es für ein Muster dementsprechend nur die beiden Möglichkeiten. Wenn
ich also
contains (Text str) name = ...
schreibe wird dieses Muster angewandt, wenn das erste Argument vom Typ XML ist und
außerdem nur aus einem Text besteht. Analog wird das andere Muster verwendet und
eines von beiden muss gemäß der Def. des Datentyps immer passen.

>  Und noch eine kleine Frage nebenbei: Warum schreibst du
> Text str und nicht Text String? Das müsste doch eigentlich
> auch gehen und würde eher kenntlich machen, dass die beiden
> Fälle von XML "untersucht" werden.

String ist der Typ. Der ist aber hier schon vollkommen geklärt, da er in der
Definition vom XML festgelegt wurde. An dieser Stelle wird lediglich eine
Variable definiert, auf die du später zugreifen möchtest.

> > contains :: XML -> Name -> Bool
>  >  contains (Text str) name = False
>  >  contains (Tag tname rest) name = if tname == name
>  >      then True
>  >      else or (map [mm](\backslash[/mm] x -> contains x name)

> rest)
>  
> Erst noch kurz wieder eine eigentlich unwichtige Frage: Wie
> kommst du auf "tname"? Naja, wahrscheinlich kann man hier
> nicht nur "name" schreiben, da es sonst mit dem name
> dahinter Probleme macht. Aber wofür soll das t stehen? Mir
> ist klar, dass das wohl total egal ist, wie ich das nenne,
> aber meistens ist das ja eine Abkürzung für irgendwas, und
> wofür das würde mich jetzt nur mal interessieren.

Der Hintergedanke war einfach nur Tag-Name mit tname abzukürzen.

>  Und dann wollte ich noch fragen, was (map [mm](\backslash[/mm] x ->

> contains x name) rest) genau bedeutet. Ich habe schon in
> meinem schlauen Buch nachgeschaut und festgestellt, dass
> map so definiert ist:
>  
> map f [] = []
>  map f (x:xs) = f x : map f xs
>  
> Nun weiß ich aber nicht so ganz, was hier x und xs ist.
> Nach diese Definition von map müsste oben ja die Klammer
> die Funktion sein und rest entspricht dann (x:xs). Aber was
> bedeutet denn der Pfeil hinter dem x? Und was bedeutet der
> Backslash?

Oh.. da empfehle ich dir am besten erstmal noch ein wenig Literatur zu
wälzen. Dieser Backslash dient zur Definition einer anonymen Funktion
(auch Lambda-Funktion genannt). In obigem Fall wird dadurch eine Funktion
definiert, die einen Parameter x erwartet und damit "contains x name" aufruft.
map wiederum erwartet eine Funktion und eine Liste als Eingabe (Funktionen als
Eingabe sollten dir keine Kopfschmerzen bereiten wenn du funktional programmierst)
und was map macht ist lediglich die übergebene Funktion auf jedes Element der
Liste anzuwenden und die Ergebnisse wiederum als Liste zurückzugeben.

Hier ein kleines Bsp:
map [mm] ($\backslash$ [/mm] x -> x + 1) [1,2,3]
Dieser Aufruf liefert dann [2,3,4] als Ergebnis.

> Und kann man dann evtl. statt map noch was anderes
> schreiben - das hatten wir nämlich noch nicht.

Die Ausrede "das hatten wir nämlich noch nicht" gilt in Haskell für vordefinierte
Funktionen prinzipiell nie. Du hast doch oben schon selbst die Definition von map
angegeben. Wenn ihr das also noch nicht hattet, dann hast du dir jetzt eben eine
Hilfsfunktion namens mymap gebastelt und gut.

> Sorry für die vielen Nachfragen. Aber ich würde das gerne
> komplett verstehen. Wäre schön, wenn du mir nochmal helfen
> könntest - muss die Aufgabe am Montag morgen abgeben, bis
> dahin hätte ich das gerne verstanden.

Sorry, dass es etwas länger gedauert hat, aber ich war die letzten paar Tage nicht
am Netz.


Bezug
                                
Bezug
Haskell: Danke.
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:36 Do 03.11.2005
Autor: Bastiane

Hallo Frank!

Danke für deine weiteren Erklärungen. Wir haben die Aufgabe heute besprochen, und ich glaube, ich habe jetzt alles verstanden. :-)

> In diesem Forum vielleicht nicht, aber es gibt viele
> Haskell-Jünger da draußen ;-)

Kennst du denn zufällig ein Haskell-Forum? (falls es so etwas überhaupt gibt...)

> Die Ausrede "das hatten wir nämlich noch nicht" gilt in
> Haskell für vordefinierte
>  Funktionen prinzipiell nie. Du hast doch oben schon selbst
> die Definition von map
>  angegeben. Wenn ihr das also noch nicht hattet, dann hast
> du dir jetzt eben eine
>  Hilfsfunktion namens mymap gebastelt und gut.

Naja - also diese Lösung, die ich dann ja auch abgegeben habe, wurde kommentiert mit "Fortgeschrittenen-Lösung". Wir haben nämlich erstmal nur die Grundsachen von Haskell gelernt, und damit hätte man es auch machen können. Natürlich kann ich nachlesen, welche Funktionen sonst so vordefiniert sind und wie das funktioniert und sie dann anwenden - aber da ich da ja nicht von alleine draufgekommen bin, war die Gefahr, dass ich gefragt werde, wie das denn überhaupt funktioniert oder wie man es anders machen könnte. Und ich weiß nicht, ob ich das dann hätte beantworten können.
Und außerdem hatten viele wohl die Aufgabe gar nicht geschafft, und wenn ich jetzt die Einzige gewesen wäre, die dann gleich so eine "Fortgeschrittenen-Lösung" abgegeben hat, dann würde der Professor jetzt von mir denken, dass ich das besonders gut kann, und wenn ich dann womöglich mal bei einer einfachen Sache nicht bescheid weiß, dann würde er sich wundern und womöglich glauben, die Aufgaben hätte ein anderer gemacht...

> Sorry, dass es etwas länger gedauert hat, aber ich war die
> letzten paar Tage nicht
>  am Netz.

Macht nichts - aber wie regelmäßig bist du denn im Netz und insbesondere hier im Forum? Kann ich gleich wieder eine Frage stellen? Wir bekommen immer etwas mehr als eine Woche Zeit für die Aufgaben, und Abgabe ist montags um 12 Uhr.

Viele Grüße und vielen Dank

Bastiane
[winken]


Bezug
                                        
Bezug
Haskell: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:45 Do 03.11.2005
Autor: Frank05


>  Und außerdem hatten viele wohl die Aufgabe gar nicht
> geschafft, und wenn ich jetzt die Einzige gewesen wäre, die
> dann gleich so eine "Fortgeschrittenen-Lösung" abgegeben
> hat, dann würde der Professor jetzt von mir denken, dass
> ich das besonders gut kann, und wenn ich dann womöglich mal
> bei einer einfachen Sache nicht bescheid weiß, dann würde
> er sich wundern und womöglich glauben, die Aufgaben hätte
> ein anderer gemacht...

Womit er auch Recht hätte. Du musst dich schon selbst mit der Thematik auseinandersetzen und verstehen lernen worum es geht. Fertige Lösungen bekommt man in der Vorlesung schon oft genug vorgesetzt, ohne dass davon viel hängen bleibt. Erst das selbständige Arbeiten mit der Materie vertieft dieses Wissen.

> Macht nichts - aber wie regelmäßig bist du denn im Netz und
> insbesondere hier im Forum? Kann ich gleich wieder eine
> Frage stellen? Wir bekommen immer etwas mehr als eine Woche
> Zeit für die Aufgaben, und Abgabe ist montags um 12 Uhr.

Du kannst hier immer Fragen stellen. Ich bin sicherlich nicht der einzige hier, der sich mal ein wenig mit Haskell beschäftigt hat (und mit Sicherheit nicht der Beste, da meine Haskell Erfahrung auch schon einige Semester zurückliegt).
Für deine Übungsaufgaben gilt aber trotzdem, dass du die alleine oder mit Hilfe der anderen Studenten in eurem Kurs lösen solltest. Also bitte keine Fragen vom Übungsblatt hier stellen.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Haskell"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]