[ library(lists_of_structures) | Reference Manual | Alphabetic Index ]

args(+Key, +Structs, -Args)

Extract arguments from a list of structures
Key
Key argument position (non-negative integer, or list of those)
Structs
List of structures
Args
Variable, or list of arguments

Description

Structs is a list of structures, and Args is a list of the Key'th arguments of these structures.

This is equivalent to either

    maplist(arg(Key), Structs, Args)
or
    ( foreach(S,Structs), foreach(A,Args), param(Key) do arg(Key,S,A) )

Modes and Determinism

Exceptions

(4) instantiation fault
Structs is insufficiently instantiated
(6) out of range
Some structure in Structs does not have a Key'th argument

Examples

    ?- args(2, [f(3,a),f(2,b),f(1,c)], Args).
    Args = [a,b,c]
    yes

    % extract keys from pairs
    ?- args(1, [a-1,a-2,b-2,c-2,c-5], Keys).
    Keys = [a,a,b,c,c]
    yes

    % extract values from pairs
    ?- args(2, [a-1,a-2,b-2,c-2,c-5], Values).
    Values = [1,2,2,2,5]
    yes

See Also

arg / 3