Неверное количество аргументов в схеме потока - PullRequest
1 голос
/ 05 марта 2019

поэтому я создал этот простой AI-код, и я хочу добавить в мой код простую умноженную математику, чтобы все было сделано так:

domains
bonus = integer

predicates
crew_db(string, integer, string) - nondeterm (o,o,o)
absensi_crew(string, symbol) - nondeterm (o,o), (i,i)
posisi_terdaftar(string, symbol) - nondeterm (o,o), (i,i)
terima_gaji(string) - nondeterm (o,i,i,o)
tambah_bonus(bonus,bonus,bonus) - procedure (i,i,o)

clauses
crew_db("Muhammad", 18, "Bantaeng, 28 November 1998").
crew_db("Irvan", 20, "Bantaeng, 28 November 1998").
crew_db("Jaya", 21, "Bantaeng, 28 November 1998").

absensi_crew("Muhammad",aman).
absensi_crew("Irvan",aman).
absensi_crew("Jaya",tidak).

posisi_terdaftar("Muhammad",aktif).
posisi_terdaftar("Irvan",aktif).
posisi_terdaftar("Jaya",tidak).

terima_gaji(TesBebasTernyata):-
  crew_db(TesBebasTernyata,_,_),
  absensi_crew(TesBebasTernyata,aman),
  posisi_terdaftar(TesBebasTernyata,aktif).

tambah_bonus(A,B,Bonus):-
  Bonus=A*B.

goal
terima_gaji(Crew_Yang_Di_Gaji_Bulan_Ini),tambah_bonus(45000,2,Bonus).

, и когда я проверяю цели моего Пролога, он терпит неудачу и говоритневерное количество аргументов в шаблоне потока

1 Ответ

0 голосов
/ 05 марта 2019

В предложении

terima_gaji(TesBebasTernyata):-
  crew_db(TesBebasTernyata,_,_),
  absensi_crew(TesBebasTernyata,aman),
  posisi_terdaftar(TesBebasTernyata,aktif).

у вас есть

crew_db(TesBebasTernyata,_,_)

, но ваши факты

crew_db("Muhammad", 18, "Bantaeng, 28 November 1998").
crew_db("Irvan", 20, "Bantaeng, 28 November 1998").
crew_db("Jaya", 21, "Bantaeng, 28 November 1998").

Обратите внимание, что пункты имеют три аргументные позиции, в то время как ваши факты имеютчетыре.

Измените

crew_db(TesBebasTernyata,_,_)

на

crew_db(TesBebasTernyata,_,_,_)

Поскольку у меня нет Visual Prolog, я не могу проверить этот ответ с помощью Visual Prolog.

...