assert

LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

assert

Příspěvek od LuKu »

Ahoj, potřebovala bych jednu drobnou radu ohledně Prologu (ještě pořád se patlám se zápočťákem :-(), tak doufám, že hledám na správném místě. Ve svém programu potřebuju přidávat slova do slovníku a odebírat je, ale když zkusím použít assert, vyplivne mi SWI-Prolog tohle:
ERROR: No permission to modify static_procedure `s/3'
^ Exception: ( 8 ) assert(s(4, [t,e,s,t], legenda))
Nevíte někdo, kde je problém? Předem díky za pomoc.
Uživatelský avatar
JJ
Matfyz(ák|ačka) level II
Příspěvky: 99
Registrován: 28. 1. 2005 14:03
Typ studia: Informatika Mgr.

Příspěvek od JJ »

Myslim ze je treba rict prologu ze s se bude menit takze nekam na zacatek zkus dat

:-dynamic(s/3).

snad to pomuze.
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Příspěvek od Almer »

Ano vim.

Problem je v tom, ze tu funkci mas uz pri consultovani zadanou. Takze on to bere jako staticke promenne. A ty nejde meni. Ja sem to treba vyresil tak, ze sme na zacatku programu udelal vec, ktera se jmenuje

:- assert(s(0,[],hodnota)).

coz zbehne kdykoliv. a prida to dynamicky s/3 kluzuli...a pak muzes v pohode assertovat a retractovat jak chces.
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

Příspěvek od LuKu »

Díky za rady, tenhle problém to vyřešilo. Bohužel se vzápětí objevil nový, který už mi hlava opravdu nebere. Začínám mít pocit, že své místo na čtvrteční zkoušce můžu klidně uvolnit :-(
Uživatelský avatar
Almer
Site Admin
Příspěvky: 686
Registrován: 12. 10. 2004 10:58
Typ studia: Informatika Ph.D.
Bydliště: Mala Strana - 203
Kontaktovat uživatele:

Příspěvek od Almer »

Co je to tentokrat?
Zakládající člen klubu Ortodoxních Matfyzáků :-D

Jsem LAMER ale neumim se ani podepsat ]:-)
LuKu
Matfyz(ák|ačka) level III
Příspěvky: 117
Registrován: 15. 1. 2005 18:29
Typ studia: Informatika Mgr.

Příspěvek od LuKu »

Na dvou mistech jsem uspesne pridala retract a vse OK, kdyz ho ale pridam na treti misto, tak tvrdi, ze ma databazi slov prazdou, ackoli dana klauzule jeste ani neprobehla. To sice nechapu, ale asi je to stejne vedlejsi, rekla bych, ze hlavni problem toho programu je v pouzitem algoritmu, coz je vec, se kterou se musim poprat sama :-( Ale mozna bych to nemela videt tak katastroficky, koneckoncu, Hric tvrdil, ze nejake stopove mnozstvi terminu bude i po zkouskovem, takze cas jeste je, obzvlast, kdyz mi krome neproceduralka chybi uz jen zapoctovy program z OOP. Mozna, ze by se nasli i taci, kteri by se mnou menili. Kazdopadne diky za pomoc, snad to dal nejak zvladnu.
Uživatelský avatar
Hugo
Donátor
Donátor
Příspěvky: 233
Registrován: 2. 6. 2005 13:31
Typ studia: Informatika Mgr.
Bydliště: treti kontejner zleva
Kontaktovat uživatele:

Příspěvek od Hugo »

LuKu píše:Ale mozna bych to nemela videt tak katastroficky, koneckoncu, Hric tvrdil, ze nejake stopove mnozstvi terminu bude i po zkouskovem, takze cas jeste je, obzvlast, kdyz mi krome neproceduralka chybi uz jen zapoctovy program z OOP.
Checht, tak zapoctak OOP nebo i-net ted fakt neresim, mozna tak za mesic, az snad budu ostatni splneno:)) Schazet jen neproc, to bych se ted tyden valel v lihu a po hospodach v horach s kamosema na chate..
Ale kdybys nahodou chtela ten termin uvolnit, dej mi pls vedet na icq, presne kdy :roll:
Odpovědět

Zpět na „2005“