Re: Possible idea for a new built-in in Eu 2.4

new topic     » goto parent     » topic index » view thread      » older message » newer message

> ----- Original Message -----
> From: <Christian.CUVIER at agriculture.gouv.fr>
> To: "EUforum" <EUforum at topica.com>
> Sent: Wednesday, February 05, 2003 12:02 PM
> Subject: Possible idea for a new built-in in Eu 2.4
> 
> >
> > Hi the list!
> > I often wind up with having to search for a key at a fixed place in a
> > sequence of sequences. The following obviously does the job:
> >
> > <code>
> > function ffind(object key,integer field,sequence target)
> > --scans the field-th elements of target for key
> > --returns index of first record with matching entry or 0 if none found
> > for i=1 to length(target) do
> > if target[i][field]=key then return i end if
> > end for
> > --not found in this "column"
> > return 0
> > end function
> > </code>
> 
> What happens when key is a sequence? The above function looks to work best
> for atoms,. Try it this way
> 
> -------------------------------------------
> function ffind(object key,integer field,sequence target)
> -------------------------------------------
>    for n = 1 to length(target) by 1 do
>        if not compare(target[n][field],key) then
>           return n
>        end if
>    end for
>    return 0
> end function

	Yep, thanks. I didn't have to look for sequences when I devised this,
but you're right.Perhaps I'd prefer "if equal(key,target[n][field]"
rather.

> >
> > But it may be slow if target is large enough, and I suspect that,
> > internally, there could be a way to do something like
> >
> > <notional code>
> > function ffind(object key,integer field,sequence target)
> > --same purpose, args and returns as above
> > return find(key,target[..][field])
> > end function
> > </notional code>
> 
> Yes, i think if there was an internal way of doing that it would be
> helpful....however there is none that i know of. It all boils down to
> looping through the sequence, sorry
> 
> Jordah

	That's the point. If hopping from target[n][field] to
target[n+1][field] internally amounts to computing the latter straight
away, the built-in is of no use, since it doesn't make anything real
faster.

> >
> > Would the built-in be significantly faster? And is there a chance that
> > it appears in Eu 2.4?
> >
> > CChris

CChris

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu