Re: list argument problem
- From: Jan Wielemaker <jan@xxxxxxxxxxxxxxxxxxx>
- Date: 18 Apr 2008 15:22:50 GMT
On 2008-04-18, Keenlearner <yingun@xxxxxxxxx> wrote:
Hello, if I have the predicate which is unknown at first for its
nameand number of arguments. This predicate is bounded to a variable,
so Iwould like to call this predicate and get the result of the call,
theresult variable always appear at the last argument of the
predicate.for instance,
X = plus(1,2). %
X =.. [Function|Args].
/*
Function = plus
Args = [1, 2]
*/
call(Function,Args, Result).
call(Function, Args, Result) :-
append(Args, [Result], AllArgs),
Goal =.. [Function|AllArgs],
Goal.
?- call(plus, [1,2], X).
X = 3.
But if you need this, it is very likely you did something not very
clever at a bit higher level of the design.
Cheers --- Jan
Thecall/2..6 would append the args of 2,3...and so on to the Function..
Butthe problem is the Args in call predicate is a list and is
unexpectedby call predicate. How can I solve this ? Thanks.
- Follow-Ups:
- Re: list argument problem
- From: Keenlearner
- Re: list argument problem
- References:
- list argument problem
- From: Keenlearner
- list argument problem
- Prev by Date: Re: call predicate
- Next by Date: Re: call predicate
- Previous by thread: list argument problem
- Next by thread: Re: list argument problem
- Index(es):