Re: [basex-talk] Exit a for-loop?

2017-02-27 Thread Marc van Grootel
Hi Joseph, 

Maybe hof:until [1] and hof:take-while [2]?

[1] http://docs.basex.org/wiki/Higher-Order_Functions_Module#hof:until
[2] http://docs.basex.org/wiki/Higher-Order_Functions_Module#hof:take-while


--Marc

> On 27 feb. 2017, at 19:25, Dirk Kirsten  wrote:
> 
> Hello Joseph,
> 
> to be honest, this doesn't sound particularly like functional
> programming. The nice thing about functional programming is that you
> shouldn't care about such optimization stuff (like breaking out of a for
> loop), but instead our optimizer should be clever enough to stop
> executing the function once he has enough results. So simply request the
> first result and you should be fine. Something like this:
> 
> 
>  (for $a at $pos in $seq1
>  where $a = $seq2[$pos]
>  return $a)[1]
> 
> Cheers
> 
> Dirk
> 
> 
>> On 02/27/2017 09:42 PM, Joseph wrote:
>> Hi,
>> 
>> I have two sets of numbers, and I would like to write a for-loop for
>> comparison, so that I get only the first match between the numbers. I
>> was thinking of a double for-loop, but I do not know how to exit the
>> comparison as soon as I get the first match. Any idea? Thanks.
>> 
>> Joseph
> 
> -- 
> Dirk Kirsten, BaseX GmbH, http://basexgmbh.de
> |-- Firmensitz: Blarerstrasse 56, 78462 Konstanz
> |-- Registergericht Freiburg, HRB: 708285, Geschäftsführer:
> |   Dr. Christian Grün, Dr. Alexander Holupirek, Michael Seiferle
> `-- Phone: 0049 7531 91 68 276, Fax: 0049 7531 20 05 22
> 


Re: [basex-talk] Exit a for-loop?

2017-02-27 Thread Dirk Kirsten
Hello Joseph,

to be honest, this doesn't sound particularly like functional
programming. The nice thing about functional programming is that you
shouldn't care about such optimization stuff (like breaking out of a for
loop), but instead our optimizer should be clever enough to stop
executing the function once he has enough results. So simply request the
first result and you should be fine. Something like this:


  (for $a at $pos in $seq1
  where $a = $seq2[$pos]
  return $a)[1]

Cheers

Dirk


On 02/27/2017 09:42 PM, Joseph wrote:
> Hi,
>
> I have two sets of numbers, and I would like to write a for-loop for
> comparison, so that I get only the first match between the numbers. I
> was thinking of a double for-loop, but I do not know how to exit the
> comparison as soon as I get the first match. Any idea? Thanks.
>
> Joseph 

-- 
Dirk Kirsten, BaseX GmbH, http://basexgmbh.de
|-- Firmensitz: Blarerstrasse 56, 78462 Konstanz
|-- Registergericht Freiburg, HRB: 708285, Geschäftsführer:
|   Dr. Christian Grün, Dr. Alexander Holupirek, Michael Seiferle
`-- Phone: 0049 7531 91 68 276, Fax: 0049 7531 20 05 22



[basex-talk] Exit a for-loop?

2017-02-27 Thread Joseph
Hi,

I have two sets of numbers, and I would like to write a for-loop for
comparison, so that I get only the first match between the numbers. I was
thinking of a double for-loop, but I do not know how to exit the comparison
as soon as I get the first match. Any idea? Thanks.

Joseph