Re: [basex-talk] Exit a for-loop?
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 Kirstenwrote: > > 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?
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?
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