Node:Parameter Passing to New Objects, Previous:Method Additions, Up:Obj Dynamic



Parameter Passing to New Objects

When new objects are created, it is possible to pass parameters. The following example shows:

In the previous examples one could pass parameters to an object as follows, using the method augment/1.

| ?- vehicle :: augment({
        new_attrs(Instance, Attribute_list) :-
                self :: new(Instance),
                :: assign_list(Attribute_list, Instance) &

        assign_list([], Instance) &
        assign_list([Att|List], Instance) :-
                :: assign(Att, Instance),
                :: assign_list(List, Instance) &

        assign(P, Instance) :-
                Instance :: assert(P)
        }).
yes

% create a new 'truck'
| ?- vehicle :: new_attrs(truck, [capacity([]),total_weight([])]).
yes