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>
Subject: Re: Possible idea for a new built-in in Eu 2.4


>
>
> > ----- 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.

Sorry but equal is not as fast as comapre besides....before equal was
introduces IIRC this is the equal i used to use...equal simply calls
compare()

function equal(object a,object b)
    return not compare(a,b)
end function

function equal(object a,object b)
    return (compare(a,b)=0)
end function

I won't deviate the main purpose of the thread u started.....Yes EU 2.4
should have that ability but i don't think it would be far faster. Besides,
I don't think it can make it to top 10 of Rob's Todo's.
     Don't get me wrong, i really find that helpful. Its just that i'm
speaking from my experience and knowledge of RDS

Jordah
>
> > >
> > > 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.


True, i feel u

>
> > >
> > > Would the built-in be significantly faster? And is there a chance that
> > > it appears in Eu 2.4?
> > >
> > > CChris
>
> CChris
>
Jordah
>
>
> TOPICA - Start your own email discussion group. FREE!
>

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

Search



Quick Links

User menu

Not signed in.

Misc Menu