1 / 23

I dagens föreläsning:

Logikprogrammering 10 P: 28 oktober 2002 Idag: Är det möjligt att samla alla lösningar från en fråga som ställs till ett prologprogram?. I dagens föreläsning:. - Kan Prolog leverera samtliga mål som uppfyller en fråga? Varför gör Prolog inte det från början?

izzy
Download Presentation

I dagens föreläsning:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logikprogrammering 10 P: 28 oktober 2002Idag: Är det möjligt att samla alla lösningar från en fråga som ställs till ett prologprogram? Kenneth Wilhelmsson [kw@ling.gu.se]

  2. I dagens föreläsning: - Kan Prolog leverera samtliga mål som uppfyller en fråga? Varför gör Prolog inte det från början? • (Antagligen pga Prologs speciella syften presenterar en sökning efter mål dessa mål ett i taget för användaren.) • Hur är det möjligt att finna den totala mängden svar snabbt? Kenneth Wilhelmsson [kw@ling.gu.se]

  3. Repetition från David Hjelms senaste föreläsning • In- och utmatning (kortfattad återblick) • Grundläggande för den interaktivitet som modern människa-dator-interaktion bygger på. • (Jämför med beräkning som en för datorn tillrättalagd process som ej tar hänsyn till olika användares intressen) • Dessutom nytt om in- och utmatning från filer… Kenneth Wilhelmsson [kw@ling.gu.se]

  4. Att skriva till skärmen och läsa från tangentbordet • Predikat i Prolog: read(X). :| pelle. X = pelle? get_char(X). :| pelle. X = p? write(pelle). pelle. write(”pelle”). [p,e,l,l,e] Kenneth Wilhelmsson [kw@ling.gu.se]

  5. Dagens nyheter angående inläsning… Kenneth Wilhelmsson [kw@ling.gu.se]

  6. Viktig_fil.txt Kenneth Wilhelmsson [kw@ling.gu.se]

  7. See/1 för att öppna en fil:see/1 förändrar indataströmmen fullständigt- från tangentbordet till en angiven fil (argumentet)härefter: get_line/1 Kenneth Wilhelmsson [kw@ling.gu.se]

  8. Seen/0 avslutar inläsningen från angiven fil. seen. yes ?- get_line(Str). |: hejdå Str = ”hejdå” (eller [’h’,’e’,’j’,’d’,’å’]) Kenneth Wilhelmsson [kw@ling.gu.se]

  9. Motsvarigheten till see/1 heter tell/1 för att skriva till filer Observera att det gamla textinnehållet raderas och ersätts av vad som anges när tell används. tell(’viktig_fil.txt’). write(’adjö’), nl. told. Kenneth Wilhelmsson [kw@ling.gu.se]

  10. När filen tar slut • När filen är slut returneras end_of_file – read(X). X = end_of_file • - Om man försöker läsa hel rad: see(’viktig_fil.txt’). yes get_line(R). R = [’a’,’d’,’j’,’ö’]. get_line(str) ! Existence error in get0/2! attempt to read past end of stream goal: get0('$stream'(2740388),_76)| ?- Kenneth Wilhelmsson [kw@ling.gu.se]

  11. När motsvarigheten till seen/0 för inskrivande, told/0, används ändras outputströmmen till att gälla bildskärmen igen. ?- write(’adjö’). yes ?- told. yes write(’adjö’). adjö yes Kenneth Wilhelmsson [kw@ling.gu.se]

  12. Återstoden av dagens föreläsning: • Att samla lösningar och eventuellt gruppera dem efter olika egenskaper Kenneth Wilhelmsson [kw@ling.gu.se]

  13. Bagof/3 Kenneth Wilhelmsson [kw@ling.gu.se]

  14. Kenneth Wilhelmsson [kw@ling.gu.se]

  15. Kenneth Wilhelmsson [kw@ling.gu.se]

  16. Kenneth Wilhelmsson [kw@ling.gu.se]

  17. Kenneth Wilhelmsson [kw@ling.gu.se]

  18. Kenneth Wilhelmsson [kw@ling.gu.se]

  19. Kenneth Wilhelmsson [kw@ling.gu.se]

  20. Findall/3 Kenneth Wilhelmsson [kw@ling.gu.se]

  21. Kenneth Wilhelmsson [kw@ling.gu.se]

  22. Setof/3 Kenneth Wilhelmsson [kw@ling.gu.se]

  23. Kenneth Wilhelmsson [kw@ling.gu.se]

More Related