Changeset 4487 for trunk/library

Show
Ignore:
Timestamp:
10/05/08 14:06:47 (3 months ago)
Author:
pmoura
Message:

Added a new library object, "pairs", defining predicates over lists of pairs (key-value terms).

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/library/pairs.lgt

    r4486 r4487  
    2727        argnames is ['Pairs', 'Values']]). 
    2828 
    29     keys_values(Pairs, Keys, Values) :- 
    30         (   nonvar(Pairs) -> 
    31             pairs_to_keys_values(Pairs, Keys, Values) 
    32         ;   nonvar(Keys), nonvar(Values) -> 
    33             keys_values_to_pairs(Keys, Values, Pairs) 
    34         ). 
     29    keys_values(Pairs, Keys, Values) :- 
     30        (   nonvar(Pairs) -> 
     31            pairs_to_keys_values(Pairs, Keys, Values) 
     32        ;   nonvar(Keys), nonvar(Values) -> 
     33            keys_values_to_pairs(Keys, Values, Pairs) 
     34        ). 
    3535 
    36     pairs_to_keys_values([], [], []). 
    37     pairs_to_keys_values([Key-Value| Pairs], [Key| Keys], [Value| Values]) :- 
    38         pairs_to_keys_values(Pairs, Keys, Values). 
     36    pairs_to_keys_values([], [], []). 
     37    pairs_to_keys_values([Key-Value| Pairs], [Key| Keys], [Value| Values]) :- 
     38        pairs_to_keys_values(Pairs, Keys, Values). 
    3939 
    40     keys_values_to_pairs([], [], []). 
    41     keys_values_to_pairs([Key| Keys], [Value| Values], [Key-Value| Pairs]) :- 
    42         keys_values_to_pairs(Keys, Values, Pairs). 
     40    keys_values_to_pairs([], [], []). 
     41    keys_values_to_pairs([Key| Keys], [Value| Values], [Key-Value| Pairs]) :- 
     42        keys_values_to_pairs(Keys, Values, Pairs). 
    4343 
    44     keys([], []). 
    45     keys([Key-_| Pairs], [Key| Keys]) :- 
    46         keys(Pairs, Keys). 
     44    keys([], []). 
     45    keys([Key-_| Pairs], [Key| Keys]) :- 
     46        keys(Pairs, Keys). 
    4747 
    48     values([], []). 
    49     values([_-Value| Pairs], [Value| Values]) :- 
    50         values(Pairs, Values). 
     48    values([], []). 
     49    values([_-Value| Pairs], [Value| Values]) :- 
     50        values(Pairs, Values). 
    5151 
    5252:- end_object.