1. Dynamic Sequences

I understand how you can add strings to the beginning or end of
sequences, but how can you delete a value from a sequence?
i.e. foo = {12, 13, 14, 15} after command foo = {12, 14, 15}. I know
I could probably write a routine to copy the whole sequence except
for the unwanted value, but is there an easier way to do this?


~~>Joseph Martin
~~>Personal: joe at cyber-wizard.com
~~>Web:  jam.net at poboxes.com
~~>URL: http://users.exis.net/~jam/

new topic     » topic index » view message » categorize

2. Re: Dynamic Sequences

> I understand how you can add strings to the beginning or end of
> sequences, but how can you delete a value from a sequence?
> i.e. foo = {12, 13, 14, 15} after command foo = {12, 14, 15}. I know
> I could probably write a routine to copy the whole sequence except
> for the unwanted value, but is there an easier way to do this?

Yes, there IS an easy way to do this:
Suppose you have a sequence called S, and want to delete element N:

S = S[1..N - 1] & S[N + 1..length(S)]

You could also make a function called remove() or something to do
this.

Hope this helps.

Michael Bolin

new topic     » goto parent     » topic index » view message » categorize

3. Re: Dynamic Sequences

>> I understand how you can add strings to the beginning or end of
>> sequences, but how can you delete a value from a sequence?
>> i.e. foo = {12, 13, 14, 15} after command foo = {12, 14, 15}. I know
>> I could probably write a routine to copy the whole sequence except
>> for the unwanted value, but is there an easier way to do this?
>
>Yes, there IS an easy way to do this:
>Suppose you have a sequence called S, and want to delete element N:
>
>S = S[1..N - 1] & S[N + 1..length(S)]
>
>You could also make a function called remove() or something to do
>this.
>
>Hope this helps.
>
>Michael Bolin
>

Hey, thanks!  I have been wondering about this also, and couldnt figure out
how to do it.  Obviously I need to print the docs (I hate exiting an editor,
reading a doc, and reentering an editor).  I know i can read them while
using ed, but I'm used to QEdit.

Anyway, I have sent my order for the Complete Edition, and am anxiously
awaing its arrival.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Dynamic Sequences

Michael Bolin wrote:
>Suppose you have a sequence called S, and want to delete element N:

>S = S[1..N - 1] & S[N + 1..length(S)]

>You could also make a function called remove() or something to do
>this.

By the way, the same approach works for adding an element to the middle of a
sequence.  To add an element E to sequence S at position P:

S = S[1..P-1] & E & S[P..length(S)]


Colin Taylor
71630.1776 at compuserve.com

new topic     » goto parent     » topic index » view message » categorize

5. Re: Dynamic Sequences

> >Yes, there IS an easy way to do this:
> >Suppose you have a sequence called S, and want to delete element N:
> >
> >S = S[1..N - 1] & S[N + 1..length(S)]
> >
> >You could also make a function called remove() or something to do
> >this.
>
> I was using something similar to this in a program I made (funny, can't
> remember), with a procedure to do it for me. I'd just like to point out that
> if you do make a procedure or function with this then make sure that "S" is
> neither equal to 1 or the length of the sequence, so you'll probably have to
> do a check first.

You must mean element "N", not "S" :)

No, this technique will work even with the first or the last element.
Euphoria allows a slice such as

S[1..0]     or      S[length(S)+1..length(S)]

These simply return an empty sequence {}, which has no effect on the
concatenation operator, so it still works anyway.

Regards,
                Michael Bolin

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu