Got it!
Regards,
Kashyap

On Thu, Oct 24, 2019 at 7:46 AM Alexander Burger <a...@software-lab.de>
wrote:

> On Thu, Oct 24, 2019 at 07:16:31AM -0700, C K Kashyap wrote:
> > If I understand correctly - the filter clause is redundant because it
> does
> > not subset the records generated by the generator?
>
> Yes. In this simple case, where we have only a single generator, this is
> correct.
>
> You don't need 'select' then, and could do
>
>    : (? @Nr (1 . 2) (db nr +CuSu @Nr @C))
>     @Nr=(1 . 2) @C={C1}
>     @Nr=(1 . 2) @C={C2}
>    -> NIL
>
>
> > When I look at the filter used in app/gui.l I wonder if the filter
> > (range @Nr @@ nr) does anything - I mean, the generator would only
> generate
> > records where nr is in the range - is that not right?
> >
> >
> >             (quote
> >                @Nr (and *CuSuNr (cons @ T))
> >                @Nm *CuSuNm
> >                @Tel *CuSuTel
> >                @Plz *CuSuPlz
> >                @Ort *CuSuOrt
> >                @Mob *CuSuMob
> >                (select (@@)
> >                   ((nr +CuSu @Nr) (nm +CuSu @Nm) (tel +CuSu @Tel)
> >                      (plz +CuSu @Plz) (ort +CuSu @Ort) (mob +CuSu @Mob) )
> >                   (range @Nr @@ nr)
> >                   (tolr @Nm @@ nm)
> >                   (fold @Tel @@ tel)
> >                   (head @Plz @@ plz)
> >                   (part @Ort @@ ort)
> >                   (fold @Mob @@ mob) ) ) )
>
> No, because the other generators will well find objects with number
> outside the
> range. This assumes the general case, with search criteria also in *CuSuNm,
> *CuSuTel, etc.
>
> If only *CuSuNr were given, and the other criteria were all NIL, then
> indeed
> only the 'nr' tree would be searched, and the range check would be
> unnecessary.
>
> We can say that the generators produce a logical OR of the criteria ("find
> all
> objects that have a number in the *CuSuNr range, OR have a name matching
> *CuSuNm, OR match *CuSuTel" and so on), and then the filter clauses do a
> logical
> AND on the found items ("return only those whose number is in the range AND
> whose name matches *CuSuNm AND whose telephone fits *CuSuTel" etc.)
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>

Reply via email to