Advertisement
Guest User

Untitled

a guest
Feb 10th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. :- public(new/2).
  2. :- mode(new(+list, -object_identifier), one).
  3. new(Args, Instance) :-
  4. self(Self),
  5. create_object(Instance, [instantiates(Self)], [], []),
  6. Instance::process_arguments(Args).
  7.  
  8. :- object(name, instantiates(name)).
  9.  
  10. process_arguments([Arg|Args]) :- process_arg(Arg), process_arguments(Args).
  11. process_arguments([]).
  12.  
  13. process_arg(Arg) :- ::asserta(something(Arg)).
  14.  
  15. process_arguments(Args) :- meta::map([Arg]>>process_arg(Arg), Args).
  16.  
  17. process_arguments(Args) :-
  18. self(Self),
  19. meta::map([Arg]>>(Self::process_arg(Arg)), Args).
  20.  
  21. :- object(name,
  22. instantiates(name)).
  23.  
  24. :- public(new/2).
  25. :- mode(new(+list, -object_identifier), one).
  26. new(Args, Instance) :-
  27. self(Self),
  28. create_object(Instance, [instantiates(Self)], [set_logtalk_flag(dynamic_declarations, allow)], []),
  29. meta::map({Instance}/[Arg]>>(Instance::process_arg(Arg)), Args).
  30.  
  31. :- private(process_arg/1).
  32. process_arg(Arg) :-
  33. ::asserta(something(Arg)).
  34.  
  35. :- end_object.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement