46 lines
964 B
Prolog
46 lines
964 B
Prolog
:- multifile(func/3).
|
|
func(+, [A, B|C], [D|C]) :-
|
|
E =.. [+, B, A],
|
|
catch(D is E, _, D = E).
|
|
|
|
func(-, [A, B|C], [D|C]) :-
|
|
E =.. [-, B, A],
|
|
catch(D is E, _, D = E).
|
|
|
|
func(*, [A, B|C], [D|C]) :-
|
|
E =.. [*, B, A],
|
|
catch(D is E, _, D = E).
|
|
|
|
func(/, [A, B|C], [D|C]) :-
|
|
E =.. [/, B, A],
|
|
catch(D is E, _, D = E).
|
|
|
|
func(mod, [A, B|C], [D|C]) :-
|
|
E =.. [mod, B, A],
|
|
catch(D is E, _, D = E).
|
|
|
|
func(>, [A, B|C], [D|C]) :-
|
|
E =.. [>, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|
|
func(<, [A, B|C], [D|C]) :-
|
|
E =.. [<, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|
|
func(>=, [A, B|C], [D|C]) :-
|
|
E =.. [>=, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|
|
func(<=, [A, B|C], [D|C]) :-
|
|
E =.. [=<, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|
|
func(=, [A, B|C], [D|C]) :-
|
|
E =.. [=:=, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|
|
func(<>, [A, B|C], [D|C]) :-
|
|
E =.. [=\=, B, A],
|
|
catch((E -> D = true ; D = false), _, D = E).
|
|
|