Re: List Of Numbers Produces Incorrect Output (part of detailed review of common microsyntaxes)

On 8 May 2008, at 07:07, Ian Hickson wrote:

> On Wed, 11 Jul 2007, Geoffrey Sneddon wrote:
>>
>> Passing #lists a string of "10" results in a list with a single  
>> value:
>> 1. This (almost certain) bug is caused by substeps 2–4 of the number
>> character option within step 13 (parser). At the second digit, we
>> multiple 0*10 before adding it to value. However, if we rewrite  
>> this set
>> of substeps to follow the pattern used in the algorithms above  
>> (such as
>> real numbers) the said bug can be fixed:
>>
>> [[
>> 1. If finished is true, skip to the next step in the overall set of  
>> steps.
>>
>> 2. Multiply value by ten.
>>
>> 3. Add the value of the digit, interpreted in base ten, to value.
>>
>> 4. Let started be true.
>> ]]
>>
>> This removes the need for two variables (multiple and n). Therefore,
>> step 9 of the outer algorithm also needs to be removed.
>
> Er, yeah, I don't know what I was thinking about when I was writing  
> that
> part of the algorithm, but it clearly wasn't maths. Fixed.

Here, for your interest, is a table of the changes those two commits  
made in my test cases:

+-----------+---------------+---------------+
|   Input   |   Old List    |   New List    |
+-----------+---------------+---------------+
|    .1     |   []          |   [1]         |
|    -.1    |   []          |   [1]         |
|    -10    |   [-1]        |   [-10]       |
|    - 1    |   [0, 1]      |   []          |
|    - 1.1  |   [0, 1]      |   []          |
|    1 .1   |   [1]         |   [1, 1]      |
|    1. 1   |   [1, 1]      |   [1]         |
|    -.     |   [0]         |   []          |
+-----------+---------------+---------------+


--
Geoffrey Sneddon
<http://gsnedders.com/>

Received on Monday, 2 June 2008 13:30:59 UTC