:- initialization(main).
ab(A,B) :- someFunc(A,B).
cd(1,5).
cd('Some shit',4).
cd(_,_) :- throw(bad_mapping). % gprolog-специфично
ef(e(X,Y), [X,Y]).
someFunc(A,B) :- B is A * A.
main :-
ab(5,B) , show(B)
, cd(C,4) , show(C)
, catch(cd(3,_), bad_mapping, show('bad mapping!'))
, ef(e(4,'two'), F), show(F)
, halt
.
Oi0gaW5pdGlhbGl6YXRpb24obWFpbikuCgphYihBLEIpIDotIHNvbWVGdW5jKEEsQikuCgpjZCgxLDUpLgpjZCgnU29tZSBzaGl0Jyw0KS4KY2QoXyxfKSA6LSB0aHJvdyhiYWRfbWFwcGluZykuICUgZ3Byb2xvZy3RgdC/0LXRhtC40YTQuNGH0L3QvgoKZWYoZShYLFkpLCBbWCxZXSkuCgoKc29tZUZ1bmMoQSxCKSA6LSBCIGlzIEEgKiBBLgoKbWFpbiA6LQogICAgYWIoNSxCKSAgICAgICAgICAsIHNob3coQikKCiAgLCBjZChDLDQpICAgICAgICAgICwgc2hvdyhDKQogICwgY2F0Y2goY2QoMyxfKSwgYmFkX21hcHBpbmcsIHNob3coJ2JhZCBtYXBwaW5nIScpKSAKCiAgLCBlZihlKDQsJ3R3bycpLCBGKSwgc2hvdyhGKQoKICAsIGhhbHQKICAuCnNob3coWCkgOi0gd3JpdGUoWCksIG5sLg==