Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- public(new/2).
- :- mode(new(+list, -object_identifier), one).
- new(Args, Instance) :-
- self(Self),
- create_object(Instance, [instantiates(Self)], [], []),
- Instance::process_arguments(Args).
- :- object(name, instantiates(name)).
- process_arguments([Arg|Args]) :- process_arg(Arg), process_arguments(Args).
- process_arguments([]).
- process_arg(Arg) :- ::asserta(something(Arg)).
- process_arguments(Args) :- meta::map([Arg]>>process_arg(Arg), Args).
- process_arguments(Args) :-
- self(Self),
- meta::map([Arg]>>(Self::process_arg(Arg)), Args).
- :- object(name,
- instantiates(name)).
- :- public(new/2).
- :- mode(new(+list, -object_identifier), one).
- new(Args, Instance) :-
- self(Self),
- create_object(Instance, [instantiates(Self)], [set_logtalk_flag(dynamic_declarations, allow)], []),
- meta::map({Instance}/[Arg]>>(Instance::process_arg(Arg)), Args).
- :- private(process_arg/1).
- process_arg(Arg) :-
- ::asserta(something(Arg)).
- :- end_object.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement