[plt-dev] Pre-Release Checklist for v4.2

From: Doug Williams (m.douglas.williams at gmail.com)
Date: Fri May 22 08:59:27 EDT 2009

I would agree with Matthias - there is no natural fill value. A vector is
often used as a sequence of numbers - at least that is where I use them the
most. And, zero is a good default. A list is not usually a sequence of
numbers - it's typically a sequence of whatever. And, there is no value that
would be useful 'most of the time'.

That being said, if you wanted them to be consistent, I would vote for #f.
But, that is because I'm a long-time Lisper and it looks like nil to me.
And, I'm not a 'voting' member of the list anyway. :)

I would like to know why #<undefined> isn't utilized more - or,
alternatively, why it exists in the first place. Is there a real difference
between no value (my mental model for #<void>) and an
undefined/uninitialized value (my mental model for #<undefined>)? In the
case of lists or vectors returned by make-list or make-vector (with no
second argument), I think of those elements as being undefined or
uninitialized and would like an error raised if I reference them before I
store something in them.

Since make-list returns an immutable list, it's hard to think of its
elements as being undefined - I can't mutate them anyway. The above argument
would make more sense for a make-mlist, which I don't think is there at the
moment.

Doug

On Fri, May 22, 2009 at 6:25 AM, Matthias Felleisen <matthias at ccs.neu.edu>wrote:

>
> make-list always takes two arguments. There is no natural fill value.
>
>
>
>
> On May 22, 2009, at 4:14 AM, Eli Barzilay wrote:
>
>  On May 22, Chongkai Zhu wrote:
>>
>>>
>>> procedure make-list: expects 2 arguments, given 1: 0
>>>
>>
>> OK, quick poll time:
>>
>> 1. What should the default value be (#f as it was, #<void> because it
>>   makes more sense, or 0 because that's what `make-vector' uses)?
>>
>> 2. Which one should be fixed -- only the srfi/1 version, or the
>>   scheme/list version (implying srfi/1 too)?
>>
>> --          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>>                  http://www.barzilay.org/                 Maze is Life!
>> _________________________________________________
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>>
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20090522/51296043/attachment.html>

Posted on the dev mailing list.