Re: problems with delayed write: tag list

*To*: mathgroup at smc.vnet.net*Subject*: [mg79908] Re: problems with delayed write: tag list*From*: Bill Rowe <readnewsciv at sbcglobal.net>*Date*: Wed, 8 Aug 2007 04:57:48 -0400 (EDT)

On 8/7/07 at 1:38 AM, peter_van_summeren at yahoo.co.uk (P_ter) wrote: >I have a list of elements of two numbers: >myList ={{1,2},{2,7},..}. >The first number is in this case always the >position. I want to know when the difference is a certain >value,myDiff, eg. 5 >i=1;myDiff==5; >now= Reap[While[i<Length[myList],i++; >If[myList[[i,2]]-myList[[i,1]]==myDiff,Sow[i]]];w] >My question is: how do I make "nowFunction[myDiff_]:="? I run into >tag list errors in the definition when I try that. P_ter It seems to me your code is more complex than necessary. Using either Cases seems to me to be more efficient. First, generate some data: In[10]:= data = MapIndexed[Join[#2, {#1}] &, RandomInteger[{1, 20}, 20]] Out[10]= {{1, 9}, {2, 18}, {3, 8}, {4, 4}, {5, 15}, {6, 19}, {7, 8}, {8, 4}, {9, 18}, {10, 3}, {11, 19}, {12, 8}, {13, 20}, {14, 17}, {15, 12}, {16, 11}, {17, 1}, {18, 14}, {19, 13}, {20, 12}} In[11]:= diff = 5; In[12]:= Cases[data, _?(Subtract @@ # == -diff &)][[All, 1]] Out[12]= {3} Then nowFunction would be: nowFunction[diff_, data_] := Cases[data, _?(Subtract @@ # == -diff &)][[All, 1]] -- To reply via email subtract one hundred and four