Article View: pl.comp.lang.funkcyjne
Article #731Re: [prolog] dlaczego źle?
From: Adam Miauczynski
Date: Thu, 05 Jan 2006 10:03
Date: Thu, 05 Jan 2006 10:03
42 lines
2436 bytes
2436 bytes
To znowu ja. Wlasnie zauwazylem, ze nie zrozumialem do konca tego przykladu z poprzednimi i nastepnymi latami (poprzedni i nastepny rok nie sa oczywiscie liczbami ale jakos zapisanymi datami ale tak to jest jak jezyk nie ma typow ;) ). Moja argumentacja z "typami" jest wiec do bani. Nalezy to raczej argumentowac w ten sposob, ze predykat get_year bedzie pobieral rok z daty, ktora jest nieukonkretniona zmienna a wtedy taki rok tez powinien byc nieukonkretniona zmienna i jako taki nie moze wystapic w wyrazniu arytmetycznym w predykacie is. Nie wiem jak wygladaja predykaty get_year i set_year. Moze jakos tak: <code> get_year(data(_, _, Rok), Rok). set_year(Rok, data(Dzien, Miesiac, _), data(Dzien, Miesiac, Rok)). </code> Przy powyzszych definicjach gdy zapytamy sie nastepujaco: ?- next_year(data(5, 1, 2006), X). X = data(5, 1, 2007) to otrzymamy poprawna date od dzis za rok. Ale gdy sprobujemy wyliczyc date od dzis w tyl o rok: ?- next_year(X, data(5, 1, 2006)). ERROR: Arguments are not sufficiently instantiated ^ Exception: (8) _L326 is _G240+1 ? to program "wysypie" sie na predykacie is, gdyz zmienna nieukonkretniona X wyraza nieukonkretniona date (dowolna) tak wiec i pobrany rok jest dowolny (nieukonkretniona zmienna _G240) a co za tym idzie nie da sie policzyc wartosci wyrazenia, w ktorym jeden ze skladnikow sumy jest nieukonkretniony. Mam nadzieje, ze tym razem nie popelnilem za wielu bledow w argumentacji :) Pozdrawiam, Adam Miauczynski -- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Technical Details
Message-ID:
<dpiqu9$o57$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<dk8ko1$ccd$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Adam Miauczynski" <adam.miauczynski@gazeta.SKASUJ-TO.pl> Newsgroups: pl.comp.lang.funkcyjne Subject: Re: [prolog] dlaczego źle? Date: Thu, 5 Jan 2006 10:03:53 +0000 (UTC) Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 42 Message-ID: <dpiqu9$o57$1@inews.gazeta.pl> References: <dk8ko1$ccd$1@inews.gazeta.pl> NNTP-Posting-Host: tarnica.im.pwr.wroc.pl X-Trace: inews.gazeta.pl 1136455433 24743 172.20.26.234 (5 Jan 2006 10:03:53 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 5 Jan 2006 10:03:53 +0000 (UTC) X-User: adam.miauczynski X-Forwarded-For: 172.20.6.162 X-Remote-IP: tarnica.im.pwr.wroc.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit