Re: list versus apply

2005-06-05 Thread Kevin Ryde
Marius Vollmer <[EMAIL PROTECTED]> writes: > > We need to document this difference between Scheme functions and C > primitives, I'd say. Yep, I added to scm_c_define_gsubr to say what a primitive should do/expect. ___ Guile-devel mailing list Guile-dev

Re: list versus apply

2005-06-05 Thread Marius Vollmer
Kevin Ryde <[EMAIL PROTECTED]> writes: > Marius Vollmer <[EMAIL PROTECTED]> writes: >> >> (define (list . args) args) >> >> is an acceptable definition of list. Is it not? > > Yep, because args is of course a fresh list when calling a lambda, but > it looks like primitives (C code) aren't calle

Re: list versus apply

2005-06-05 Thread Kevin Ryde
Marius Vollmer <[EMAIL PROTECTED]> writes: > > (define (list . args) args) > > is an acceptable definition of list. Is it not? Yep, because args is of course a fresh list when calling a lambda, but it looks like primitives (C code) aren't called with a copied list like that. (I guess having pr

Re: list versus apply

2005-06-05 Thread Marius Vollmer
Kevin Ryde <[EMAIL PROTECTED]> writes: > Looks like list doesn't produce a new list when called through apply, > > (define x '(1 2 3)) > (define y (apply list x)) > (eq? x y) > => #t Is it required to make a copy in this situation? I thought that (define (list . args)

Re: list versus apply

2005-04-22 Thread Kevin Ryde
I wrote: > > (define x '(1 2 3)) > (define y (apply list x)) > (eq? x y) > => #t Actually, I see in the head this happens under the debugging evaluator but not the normal one. I made my change because it fixes a bug in 1.6 and the head, but maybe there's something fishy be

list versus apply

2005-04-20 Thread Kevin Ryde
Looks like list doesn't produce a new list when called through apply, (define x '(1 2 3)) (define y (apply list x)) (eq? x y) => #t I'm looking at the fix below. This removes the C level scm_list, but that should be ok, it's not documented and does nothing. ---