流模式中的参数数量错误
Wrong number of arguments in flow pattern
所以我创建了这个简单的 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).
当我检查我的 Prolog 的目标时,它失败了,并指出流模式中的参数数量错误
在子句中
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 测试这个答案。
所以我创建了这个简单的 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).
当我检查我的 Prolog 的目标时,它失败了,并指出流模式中的参数数量错误
在子句中
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 测试这个答案。