vorherige Seite | 1 2 3 4 5 6 | nächste Seite |
Gepostet: |
|||||||||||
Hi Jacke! Ich versuche die letzte Funktion show_Book zu machen.Die wird ähnlich wie searchTitel. Die Funktion searchTitel habe ich so geändert, dass die zeigt jetez nur Titels und nicht ganze Information über Buch. Das soll show_Book machen. Aber wenn ich versuche bei show_Book substr zu definieren, bekomme ich ein Fehler "substr" multiply defined Wenn verlasse ich diese definition, dann Type error in application *** Expression : substr z eList *** Term : eList *** Type : [([Char],[Char],[Char],[Char],[Char])] *** Does not match : [Char] Außerdem, steht in Aufgabestellung, dass als Argument ein Element aus der Bücherliste erwartet wird und bei mir muss ich noch die Name einer Bücherliste angeben. Dazu muss ich noch die Informationen mit carriage return trennen (/r) und soweit ich gelesen habe, es funktioniert innerhalb einer Liste nicht, sonst bei Strings. Was ratest du? type Author=String type Titel=String type Publisher=String type Year=String type Price=String type Booklist=[(Author,Titel,Publisher,Year,Price)] exampleList::Booklist exampleList=[("Simon Thomson","The craft of functional Programming","Addison-Wesley","1999","39,90e"),("Dan Gookin","Haskell für Dummies","MitP","1998","99,99e")] new_entry::Booklist->Author->Titel->Publisher->Year->Price->Booklist new_entry exampleList a t pub y pr =[(a,t,pub,y,pr)]++exampleList searchTitel::Booklist->Titel->[Titel] searchTitel eList t=[(titel)|(author,titel,publisher,year,price)<-eList,substr t titel] substr :: String -> String -> Bool substr [] _ = True substr (_:_) [] = False substr (x:xs) (y:ys) = substr (x:xs) ys || f_substr (x:xs) (y:ys) where f_substr [] _ = True f_substr (_:_) [] = False f_substr (x:xs) (y:ys) = (x==y) && f_substr xs ys allAuthors :: Booklist->[Author] allAuthors eList=[(author)|(author,titel,publisher,year,price)<-eList] num_List::Booklist->[(Int,Titel)] num_List eList= zip [1..length titels] titels where titels=[(titel)|(author,titel,publisher,year,price)<-eList] show_Book::Booklist->String->Booklist show_Book eList z=[(author,titel,publisher,year,price)|(author,titel,publisher,year,price)<-eList,substr z eList] MfG echsel |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
gute frage was ist mit ein argument aus der bücherliste gemeint? der titel? die preise? ich würd ja sagen der titel eines buches oder versteh ich das falsch /r kann man mit map einbinden das ist nicht so schwer...aber erst mal die aufgabe verstehen...darüber muß ich erstmal ne runde nachdenken...ich pro das bis heute abend mal wahrscheinlich mit titel und der examplelist als argument... substr kann man nicht so auf ne liste anwenden...da muß ich erstmal selber kucken wo der fehler herkommt gruß jacke ps:bisher schlägst du dich doch ganz gut... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
so ich denke jetzt hab ich die aufgabe verstanden...also fang ich dann gleich mal an mit programmieren... man soll nen element von typ booklist reingeben...also als eingabe typ show_book:: (Author,Titel,Pub...)->String naja jedenfalls ist das garnicht mal so einfach da muß man noch was mt instance of machen weil sonst gibt man ja nicht die variablen zurück sondern nur den namen...ich werd das wohl heute nicht mehr fertig kriegen weil ich bald zu meinen eltern fahre(weihnachten und so)...bin am 28ten wieder da und mach mir bis dahin nen kopf... also erstmal frohe feiertage... gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
also ich hab nochmal jemanden gefragt die ausgabe macht man mit putstr und dann einfach in dem string /n schreiben...und dann macht er nen zeilenumbruch... gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo zuerst Alles Gute im neuen Jahr! Ich bin lange Zeit zuhause geblieben. Dort habe ich leider keinen Internetanschluss. Erst jetzt kann ich wieder mit Haskell kämpfen :) Ich habe versucht die Funktion onhe "instance" zu schreiben. showBuch:: (Autoren,Titel,Verlag,Jahr,Preis)->String showBuch = putStr (data) data :: Liste->String data = [(Autoren,Titel,Verlag,Jahr,Preis)|(Autoren,Titel,Verlag,Jahr,Preis)<-data] soweit ich gelesen habe, instance nutzt man ungefähr so instance (data) where data = z.B. string, liste usw. Leider alle meine Versuche liegen in roten Bereich :/ MfG Echsel |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
wofür brauchst du denn das instance?... ich schreib heute abend noch was dazu gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hey Jacke, du has selbst geschrieben, dass ich das instance brauche, sonst kriege ich die Variablen nicht zurück :) MfG echsel |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
module Main where aufruf mit main das dürfte dir weiterhelfen... gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Ich weiss, es klingt dumm, aber Haskell nimmt "module" überhaupt nichts :/ ich bekomme immer fehlermeldung: unexpected keyword "module" :( Ich habe im Internet einpaar Beispiele gefunden, wo man "modeule ... where" ausnutzt, aber irgendwie bei mir will es nicht funktionieren. Außerdem wenn ich putStr nutze, zwischen Klammern steht das Text, der ausgegeben wird. Aber ich kann nicht einfach den Text eingeben. Wie kann ich der Text mit eine Liste verketten? gruß echsel |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
also ich hab dir jetzt show_book geschrieben...das wort module ist ein schlüßelwort und muß a anfang der datei stehen... so also hier show_book show_book::(Author,Titel,Publisher,Year,Price)-> IO() aufruf mit show_book ("a","b","c","d","e") gruß jacke... ps :war ja garnich so schwer...;) |
|||||||||||
Zum Seitenanfang | |||||||||||
vorherige Seite | 1 2 3 4 5 6 | nächste Seite |