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
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
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
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)
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
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.
---