Witam,
mam za zadanie napisać postfixowy predykat w Prologu obliczający iloczyn kolejnych liczb nieparzystych.
Ma działać on w taki sposób:
X is 5!!.
X = 15.
Napisałem już swój kod:
:- arithmetic_function(!!/1).
:- op(500, xf, !!).
!!(0,1) :- !.
!!(1,1) :- !.
!!(A,B) :-
0 is A mod 2,
N is A - 1,
!!(N,B),
!.
!!(A,B) :-
1 is A mod 2,
N is A-2,
!!(N,M),
B is M*A.
Niestety SWI-Prolog sypie mi błędami:
ERROR: art.pl:16:
op/3: Type error:list' expected, found
(!)!'
Warning: art.pl:16:
Goal (directive) failed: user:op(1200,xf, (!)!)
19:0: Syntax error: Operator expected
20:0: Syntax error: Operator expected
21:0: Syntax error: Operator expected
art.pl:26:0: Syntax error: Operator expected
Co poradzić?