# Tutorial creates confusion about slices

Antoon Pardon apardon at forel.vub.ac.be
Tue Apr 24 08:39:38 CEST 2007

```On 2007-04-23, Michael Bentley <michael at jedimindworks.com> wrote:
>
> On Apr 23, 2007, at 7:38 AM, Antoon Pardon wrote:
>
>> The following is part of the explanation on slices in the
>> tutorial:
>>
>> The best way to remember how slices work is to think of the indices as
>> pointing between characters, with the left edge of the first character
>> numbered 0. Then the right edge of the last character of a string of n
>> characters has index n, for example:
>>
>>   +---+---+---+---+---+
>>   | H | e | l | p | A |
>>   +---+---+---+---+---+
>>   0   1   2   3   4   5
>>  -5  -4  -3  -2  -1
>>
>> This is all very well with a simple slice like:
>>
>>   "HelpA"[2:4]    =>     "lp"
>>
>>
>> But it give the wrong idea when using the following extended slice:
>>
>>   "HelpA"[4:2:-1]   =>   "Ap"
>>
>> So this doesn't result in the reverse of the previous expression while
>> the explanation above suggest it does.
>>
>>
>> So I suggest to drop this.
>
> But 'drop' means to let or make (something) fall vertically...  :-)
>
> At that point in the tutorial, step values had not been discussed.
> Just a bit lower down on the page you'll find a link to 'Sequence
> Types' where you'll find an explanation of stepping you'll perhaps
> find more satisfactory.

That is very well posible. The question: Even if we get a good
explanation later, do we want an explanation here that can cause
back to this place. So at that point he knows about stepping

I suspect that if you give this explanation to someone and explain
that there is also a step parameter, chances are he will answer
correctly if you ask him, what he thinks the following will result
in:

"This is an example line"[12:19:2]

If you ask him what the following will result in:

"This is an example line"[19:12:-1]

Chances are he will give the wrong answer.

```