I think this used to work in older Kawa releases, but how do I use APPLY to invoke a function like this in Kawa 3.0? #|kawa:1|# (define (foo x #!key y) (list x y)) #|kawa:2|# (foo 1 y: 2) (1 2) #|kawa:3|# (apply foo (list 1)) (1 #f) #|kawa:4|# (apply foo (list 1 2)) gnu.mapping.WrongArguments #|kawa:5|# (apply foo (list 1 y: 2)) gnu.mapping.WrongArguments In Kawa 2.4, this worked: duncan@furigana:~/Downloads/kawa-2.4/bin$ ./kawa #|kawa:1|# (define (foo x #!key y) (list x y)) #|kawa:2|# (apply foo (list 1 y: 2)) (1 2) #|kawa:3|# (apply foo (list 1 2)) (1 #f) Happy holidays! -- Duncan.
On 12/27/2017 05:28 PM, Duncan Mak wrote: > I think this used to work in older Kawa releases, but how do I use > APPLY to invoke a function like this in Kawa 3.0? > > #|kawa:1|# (define (foo x #!key y) (list x y)) You can do this: (apply foo (arglist 1 y: 2)) which is the same as: (foo @:(arglist 1 y: 2)) This chapter in the manual should be helpful: https://www.gnu.org/software/kawa/Application-and-Arguments-Lists.html -- --Per Bothner per@bothner.com http://per.bothner.com/
Thanks Per! That worked!
On Wed, Dec 27, 2017 at 9:48 PM, Per Bothner <per@bothner.com> wrote:
> On 12/27/2017 05:28 PM, Duncan Mak wrote:
>>
>> I think this used to work in older Kawa releases, but how do I use
>> APPLY to invoke a function like this in Kawa 3.0?
>>
>> #|kawa:1|# (define (foo x #!key y) (list x y))
>
>
> You can do this:
>
> (apply foo (arglist 1 y: 2))
>
> which is the same as:
>
> (foo @:(arglist 1 y: 2))
>
> This chapter in the manual should be helpful:
> https://www.gnu.org/software/kawa/Application-and-Arguments-Lists.html
>
> --
> --Per Bothner
> per@bothner.com http://per.bothner.com/
--
Duncan.