There should be some mistake when building the j805 j.dll. However j806 beta seems working again.
Пт, 14 апр 2017, Herbert Weissenbaeck // Privat написал(а): > I tried to refer to the j.dll directly. > VS tells me "A reference to (path...)\j.dll could not be added" > > i wonder, why j804 behaves differently. > > Sent from my iPhone > > > On 14 Apr 2017, at 08:35, bill lam <[email protected]> wrote: > > > > not sure why it can not add reference in vs. actually you don't have to > > add jdllserver to reference if you don't need intelligent sense. > > > > On 14 Apr, 2017 7:57 pm, "Herbert Weissenbaeck // Privat" < > > [email protected]> wrote: > > > >> bill, > >> thank you for your support. > >> using syswow64/regsvr32 does not give any error message, confirms that the > >> dll is registered, but does not resolve my problem. the error message i > >> receive when trying to add the reference to J DLL Server in VS remains > >> unchanged. > >> best > >> herbert > >> > >> Sent from my iPhone > >> > >>> On 14 Apr 2017, at 00:36, bill lam <[email protected]> wrote: > >>> > >>> sorry, it should be syswow64 > >>> > >>> Пт, 14 апр 2017, bill lam написал(а): > >>>> From your previous msg, it said > >>>> 'C:\Program Files\j805\bin\j.dll' > >>>> > >>>> please check this is a J32 installation and have registered it > >>>> using wow64/regsvr32. > >>>> > >>>> Чт, 13 апр 2017, Herbert Weissenbaeck // Privat написал(а): > >>>>> I am actually compiling for 32bits (x86) only. (That's sufficient for > >> this stage of my development.) > >>>>> > >>>>> Sent from my iPhone > >>>>> > >>>>>> On 13 Apr 2017, at 22:22, bill lam <[email protected]> wrote: > >>>>>> > >>>>>> 32-bit inproc server must be used with an 32-application. > >>>>>> 32-bit out-of-process server can be used with either 32 or > >>>>>> 64 application. Please confirm what are the intended 32/64 bit > >>>>>> version of jdllserver and application (not visual studio). > >>>>>> > >>>>>> jdllserver is in-proc server so that 32/64 bit must match, with > >>>>>> application. use regsvr32 inside wow64 folder to register the > >>>>>> 32-bit j.dll > >>>>>> > >>>>>> Чт, 13 апр 2017, Herbert Weissenbaeck // Privat написал(а): > >>>>>>> Robert, > >>>>>>> > >>>>>>> coincidentally I had the last Windows update just one hour ago; but > >> the problem was there before and after. > >>>>>>> > >>>>>>> I am presently traveling and have no access to any other computer > >> than my notebook; thus I can not try to replicate my problem on another > >> machine. > >>>>>>> > >>>>>>> (I am using VS 2017 Enterprise on an English Windows 10 an a > >> ThinkPad P50 Xeon machine to develop an app that connects to J DLL Server. > >> Had 804 so far but would like to switch to 805.) > >>>>>>> > >>>>>>> Is anybody successfully using the 32 bit 805 DLL Server from VS in a > >> .net application? > >>>>>>> > >>>>>>> Best > >>>>>>> Herbert > >>>>>>> > >>>>>>>> On 13 Apr 2017, at 21:09, robert therriault <[email protected]> > >> wrote: > >>>>>>>> > >>>>>>>> Herbert, > >>>>>>>> > >>>>>>>> This may not be related at all, but is this recent? I read that > >> Windows 10 had the Creative update pushed on it in the last couple of days > >> and if it was like the last time it may break some things. Not sure why it > >> would affect 805 and not 804. ;-) > >>>>>>>> > >>>>>>>> http://www.infoworld.com/article/3189776/microsoft- > >> windows/microsofts-critical-windows-and-office-patches- > >> present-a-panoply-of-problems.html > >>>>>>>> > >>>>>>>> Cheers, bob > >>>>>>>> > >>>>>>>>> On Apr 13, 2017, at 5:57 PM, Herbert Weissenbaeck // Privat < > >> [email protected]> wrote: > >>>>>>>>> > >>>>>>>>> Thank you. Tried to run vs as admin. > >>>>>>>>> same result > >>>>>>>>> > >>>>>>>>> uninstalled and re-installed j805 into users directory. > >>>>>>>>> same (negative) result. > >>>>>>>>> > >>>>>>>>> I can however use J EXE Server via COM also in the 805 version > >> (but want J DLL Server, which still gives me an error). > >>>>>>>>> > >>>>>>>>> Any more ideas? > >>>>>>>>> > >>>>>>>>> Sent from my iPhone > >>>>>>>>> > >>>>>>>>>> On 13 Apr 2017, at 20:18, bill lam <[email protected]> wrote: > >>>>>>>>>> > >>>>>>>>>> I am not sure. IIRC It works for me. Perhaps it is a security > >> issue. try > >>>>>>>>>> run visual studio as admin. > >>>>>>>>>> > >>>>>>>>>> program files is protected, not sure if this is related to your > >> problem. > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> On 14 Apr, 2017 7:48 am, "Herbert Weissenbaeck // Privat" < > >>>>>>>>>> [email protected]> wrote: > >>>>>>>>>> > >>>>>>>>>> its regsvr32 without the "/r", i suppose. > >>>>>>>>>> > >>>>>>>>>> in an admin console the registration seems to work. the J DLL > >> Server > >>>>>>>>>> (version 3) type library shows up in visual studio with file > >> version 805. > >>>>>>>>>> (the j804 one showed file version 701.) > >>>>>>>>>> > >>>>>>>>>> however selecting it gives an error: "A reference to 'J DLL > >> Server (version > >>>>>>>>>> 3) Type Library' could not be added. Could not register the > >> ActiveX type > >>>>>>>>>> library 'C:\Program Files\j805\bin\j.dll'. > >>>>>>>>>> > >>>>>>>>>> the same thing works without any problem with j804. why? > >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Sent from my iPhone > >>>>>>>>>> > >>>>>>>>>>> On 13 Apr 2017, at 19:22, bill lam <[email protected]> wrote: > >>>>>>>>>>> > >>>>>>>>>>> typo, regsvr32 > >>>>>>>>>>> > >>>>>>>>>>>> On 14 Apr, 2017 7:21 am, "bill lam" <[email protected]> > >> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> jdllserver should work for all versions. try open an admin > >> command prompt > >>>>>>>>>>>> at bin folder and type > >>>>>>>>>>>> regvsr32 /r j.dll > >>>>>>>>>>>> > >>>>>>>>>>>> On 14 Apr, 2017 6:17 am, "Herbert Weissenbaeck // Privat" < > >>>>>>>>>>>> [email protected]> wrote: > >>>>>>>>>>>> > >>>>>>>>>>>> On my Windows 10 machine J805 fails to register as a COM Server. > >>>>>>>>>>>> > >>>>>>>>>>>> When I use jreg.cmd under 804 I get a "J DLL Server (version 3) > >> Type > >>>>>>>>>>>> Library" in the kist of available Type Libraries in MS Visual > >> Studio. > >>>>>>>>>>>> > >>>>>>>>>>>> When I do the same with J805, no type library is registered. > >>>>>>>>>>>> > >>>>>>>>>>>> Is this a bug or a feature? I would prefer working with 805 > >> over 804. > >>>>>>>>>>>> > >>>>>>>>>>>> Any hints/fixes? > >>>>>>>>>>>> > >>>>>>>>>>>>> On 13 Apr 2017, at 16:23, 'Bo Jacoby' via Programming < > >>>>>>>>>>>> [email protected]> wrote: > >>>>>>>>>>>>> > >>>>>>>>>>>>> Hi Louis. > >>>>>>>>>>>>> Thanks for asking. I regret not knowing the answer. > >>>>>>>>>>>>> An ordinal fraction is like an array in J, with minor > >> differences. > >>>>>>>>>>>>> - Arrays have names. Ordinal fractions have numbers. > >>>>>>>>>>>>> - An array has a finite number of dimensions. An ordinal > >> fraction has > >>>>>>>>>>>> an infinite number of dimensions. > >>>>>>>>>>>>> - Arrays may have different shapes. All ordinal fractions have > >> the > >>>>>>>>>>>> same shape: 9 9 9 9 . . . > >>>>>>>>>>>>> - Arrays have zero-origin indexing (0 1 . . . n). Ordinal > >> fractions > >>>>>>>>>>>> have one-origin indexing (1 2 3 4 5 6 7 8 9). > >>>>>>>>>>>>> > >>>>>>>>>>>>> - Arrays have elements. Ordinal fractions do not have elements. > >>>>>>>>>>>>> - Arrays may have subarrays. All ordinal fractions have > >> subordinate > >>>>>>>>>>>> ordinal fractions. > >>>>>>>>>>>>> - Array elements contain data. Any ordinal fraction may > >> contain a data > >>>>>>>>>>>> element. > >>>>>>>>>>>>> Ordinal fractions were invented (by me) in 1980, but have had > >> limited > >>>>>>>>>>>> dissemination so far. I made programs in fortran and pascal and > >> basic for > >>>>>>>>>>>> manipulating ordinal fraction files, but I have not managed to > >> do it in > >>>>>>>>>> J. > >>>>>>>>>>>> The programs were general, because the logic is in the data > >> file and not > >>>>>>>>>> in > >>>>>>>>>>>> the program. I have been alone doing this. > >>>>>>>>>>>>> Thanks! Bo. > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> Den 20:08 torsdag den 13. april 2017 skrev Louis de Forcrand < > >>>>>>>>>>>> [email protected]>: > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> Hi Bo, > >>>>>>>>>>>>> This is cool. > >>>>>>>>>>>>> > >>>>>>>>>>>>> As for the way you suggest using it here, isn't it equivalent > >> to > >>>>>>>>>>>> (without the first six rows of your data): > >>>>>>>>>>>>> > >>>>>>>>>>>>> (~.@[ ,. +//.)/@|: > >>>>>>>>>>>>> ? > >>>>>>>>>>>>> > >>>>>>>>>>>>> Louis > >>>>>>>>>>>>> > >>>>>>>>>>>>>> On 12 Apr 2017, at 21:57, 'Bo Jacoby' via Programming < > >>>>>>>>>>>> [email protected]> wrote: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Hi Joe! > >>>>>>>>>>>>>> My favorite datastructure is ORDINAL FRACTIONS - the algebra > >> of data > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> | | | > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> | | > >>>>>>>>>>>>>> ORDINAL FRACTIONS - the algebra of data > >>>>>>>>>>>>>> This paper was submitted to the 10th World Computer Congress, > >> IFIP 1986 > >>>>>>>>>>>> conference, but rejected by the referee.... | | > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> | > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Your data are coded like this > >>>>>>>>>>>>>> 10 Joe > >>>>>>>>>>>>>> 20 Bob > >>>>>>>>>>>>>> 30 Jane > >>>>>>>>>>>>>> 01 blue > >>>>>>>>>>>>>> 02 red > >>>>>>>>>>>>>> 03 purple > >>>>>>>>>>>>>> 11 1 > >>>>>>>>>>>>>> 11 -1 > >>>>>>>>>>>>>> 11 1 > >>>>>>>>>>>>>> 22 1 > >>>>>>>>>>>>>> 22 1 > >>>>>>>>>>>>>> 22 3 > >>>>>>>>>>>>>> 22 -1 > >>>>>>>>>>>>>> 22 -1 > >>>>>>>>>>>>>> 33 5 > >>>>>>>>>>>>>> 33 -2 > >>>>>>>>>>>>>> 33 2 > >>>>>>>>>>>>>> (Written with double CRs because the mail program has a > >> history of > >>>>>>>>>>>> deleting my CRs). > >>>>>>>>>>>>>> Summation gives the result > >>>>>>>>>>>>>> 10 Joe > >>>>>>>>>>>>>> 20 Bob > >>>>>>>>>>>>>> 30 Jane > >>>>>>>>>>>>>> 01 blue > >>>>>>>>>>>>>> 02 red > >>>>>>>>>>>>>> 03 purple > >>>>>>>>>>>>>> 11 1 > >>>>>>>>>>>>>> 22 3 > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> 33 5 > >>>>>>>>>>>>>> I have not done the summation in J, but I'd like to do it. > >>>>>>>>>>>>>> Perhaps this helps you. > >>>>>>>>>>>>>> Bo. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Den 0:04 torsdag den 13. april 2017 skrev chris burke < > >>>>>>>>>>>> [email protected]>: > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> Incidentally, for production code, I suggest starting by > >> removing any > >>>>>>>>>>>> sales > >>>>>>>>>>>>>> not matched in returns and vice versa, so that the matching > >> algorithm > >>>>>>>>>> is > >>>>>>>>>>>>>> applied only to potential matches. > >>>>>>>>>>>>>> > >>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 2:53 PM, chris burke < > >> [email protected]> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Great. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> In case you need more complicated handling of the "gray area" > >>>>>>>>>>>>>>> transactions, I believe they would be relatively few in > >> number, so > >>>>>>>>>>>> most of > >>>>>>>>>>>>>>> the time you could do the matching efficiently, then check > >> for any > >>>>>>>>>> keys > >>>>>>>>>>>>>>> with returns preceding sales. For those, setting aside the > >> first such > >>>>>>>>>>>>>>> return and repeating should clear them quickly. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> Timing should be well under 1 second for a million records. > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 1:57 PM, Joe Bogner < > >> [email protected]> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> Just for completeness, I added a line that incorporates the > >> sequence > >>>>>>>>>>>> check > >>>>>>>>>>>>>>>> into the cancel logic. Works great > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> NB. hui progressive index > >>>>>>>>>>>>>>>> NB. http://code.jsoftware.com/ > >> wiki/Essays/Progressive_Index-Of > >>>>>>>>>>>>>>>> oc=: i.~ (] - {) /:@/: > >>>>>>>>>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. , > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> NB. argument is 3-col table of seq,key,qty > >>>>>>>>>>>>>>>> NB. result is the unmatched transactions > >>>>>>>>>>>>>>>> matchtrans=: 3 : 0 > >>>>>>>>>>>>>>>> msk=. 0<{:"1 y > >>>>>>>>>>>>>>>> sales=. msk#y > >>>>>>>>>>>>>>>> returns=. (-.msk)#y > >>>>>>>>>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns > >>>>>>>>>>>>>>>> cancels=. ndx<#sales > >>>>>>>>>>>>>>>> NB. ensure cancel is after sale > >>>>>>>>>>>>>>>> cancels =. cancels *. (({."1 (<<(cancels)#ndx){sales) < > >> ({."1 > >>>>>>>>>>>>>>>> (cancels#returns))) > >>>>>>>>>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns > >>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 4:14 PM, Joe Bogner < > >> [email protected]> > >>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Chris, this looks promising. Thanks for sharing. It's > >> nearly instant > >>>>>>>>>>>> on > >>>>>>>>>>>>>>>> a > >>>>>>>>>>>>>>>>> million rows. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Which row had a return before a transaction? seq 10 was an > >> example > >>>>>>>>>>>> of a > >>>>>>>>>>>>>>>>> partial return. The hypothetical customer returned 2 out > >> of the 5 > >>>>>>>>>>>>>>>> purchased > >>>>>>>>>>>>>>>>> prior. I added that example since technically per the > >> original spec > >>>>>>>>>>>> it > >>>>>>>>>>>>>>>>> wouldn't be cancelled out in this pass. It's a gray area > >> so I may > >>>>>>>>>> be > >>>>>>>>>>>>>>>> able > >>>>>>>>>>>>>>>>> to use this approach, especially since I don't see how to > >>>>>>>>>> incorporate > >>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>> time element into the progressive index. > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> Thanks again > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 3:52 PM, chris burke < > >> [email protected]> > >>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> This might be done by comparing matrices of sales and > >> returns. The > >>>>>>>>>>>>>>>>>> function > >>>>>>>>>>>>>>>>>> below seems to be close to what you want. It doesn't > >> exactly match > >>>>>>>>>>>> your > >>>>>>>>>>>>>>>>>> example, but your example has cases where returns are > >> made before > >>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>> transactions. Was this intentional? > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> The code should run faster than a looping solution. > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Code: > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> NB. hui progressive index > >>>>>>>>>>>>>>>>>> NB. http://code.jsoftware.com/ > >> wiki/Essays/Progressive_Index-Of > >>>>>>>>>>>>>>>>>> oc=: i.~ (] - {) /:@/: > >>>>>>>>>>>>>>>>>> pi=: #@[ ({. i.&(,.oc) }.) [ i. , > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> NB. argument is 3-col table of seq,key,qty > >>>>>>>>>>>>>>>>>> NB. result is the unmatched transactions > >>>>>>>>>>>>>>>>>> matchtrans=: 3 : 0 > >>>>>>>>>>>>>>>>>> msk=. 0<{:"1 y > >>>>>>>>>>>>>>>>>> sales=. msk#y > >>>>>>>>>>>>>>>>>> returns=. (-.msk)#y > >>>>>>>>>>>>>>>>>> ndx=. (}."1 sales) pi | }."1 returns > >>>>>>>>>>>>>>>>>> cancels=. ndx<#sales > >>>>>>>>>>>>>>>>>> ((<<<cancels#ndx){sales),(-.cancels)#returns > >>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> Example: > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> dat=: ".;._2 (0 : 0) > >>>>>>>>>>>>>>>>>> 1 1 1 > >>>>>>>>>>>>>>>>>> 2 1 _1 > >>>>>>>>>>>>>>>>>> 3 1 1 > >>>>>>>>>>>>>>>>>> 4 2 1 > >>>>>>>>>>>>>>>>>> 5 2 1 > >>>>>>>>>>>>>>>>>> 6 2 3 > >>>>>>>>>>>>>>>>>> 7 2 _1 > >>>>>>>>>>>>>>>>>> 8 2 _1 > >>>>>>>>>>>>>>>>>> 9 3 5 > >>>>>>>>>>>>>>>>>> 10 3 _2 > >>>>>>>>>>>>>>>>>> 11 3 2 > >>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> matchtrans dat > >>>>>>>>>>>>>>>>>> 3 1 1 > >>>>>>>>>>>>>>>>>> 6 2 3 > >>>>>>>>>>>>>>>>>> 9 3 5 > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>> On Wed, Apr 12, 2017 at 9:35 AM, Joe Bogner < > >> [email protected]> > >>>>>>>>>>>>>>>> wrote: > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> I have a problem I'm trying to solve in different > >> languages. I > >>>>>>>>>>>> have a > >>>>>>>>>>>>>>>>>>> solution in SQL and also in kdb which largely resembles > >> the SQL > >>>>>>>>>>>>>>>>>> solution. > >>>>>>>>>>>>>>>>>>> I'm curious what a J solution would look like. More > >> specifically, > >>>>>>>>>>>> I'm > >>>>>>>>>>>>>>>>>>> interested in picking the brains of others here to see > >> if this > >>>>>>>>>> type > >>>>>>>>>>>>>>>> of > >>>>>>>>>>>>>>>>>>> problem can be solved without looping (some form of > >> scan?). > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> EDIT: Initially I wrote this up thinking the J solution > >> would > >>>>>>>>>>>>>>>> difficult, > >>>>>>>>>>>>>>>>>>> but it was actually fairly straightforward -- about 15 > >> minutes, > >>>>>>>>>> but > >>>>>>>>>>>>>>>>>> still > >>>>>>>>>>>>>>>>>>> would like to see if there are alternatives. If nothing > >> else, > >>>>>>>>>> maybe > >>>>>>>>>>>>>>>> an > >>>>>>>>>>>>>>>>>>> interesting problem to share. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Example data: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> A store has a transaction log with a sequence for each > >>>>>>>>>> transaction. > >>>>>>>>>>>>>>>> The > >>>>>>>>>>>>>>>>>>> transaction log records a key for a unique customer/item > >>>>>>>>>>>> combination. > >>>>>>>>>>>>>>>>>> The > >>>>>>>>>>>>>>>>>>> transaction log records how many units were purchased or > >> returned. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Goal: > >>>>>>>>>>>>>>>>>>> Attempt to match up related transactions and cancel out > >> instances > >>>>>>>>>>>>>>>> when > >>>>>>>>>>>>>>>>>> the > >>>>>>>>>>>>>>>>>>> customer/item combination is returned at the same > >> quantity as a > >>>>>>>>>>>>>>>> previous > >>>>>>>>>>>>>>>>>>> transaction > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Examples: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Joe buys 1 blue pen, which is defective, then returns > >> the 1 > >>>>>>>>>>>> defective > >>>>>>>>>>>>>>>>>> blue > >>>>>>>>>>>>>>>>>>> pen, then buys another blue pen. EXPECTED: cancel out > >> first two > >>>>>>>>>>>>>>>>>>> transactions and leave the the last one for 1 pen > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Bob buys 2 red pens in two separate transactions. He > >> then buys 3 > >>>>>>>>>>>>>>>> more. > >>>>>>>>>>>>>>>>>> He > >>>>>>>>>>>>>>>>>>> returns the first two purchases as two separate return > >>>>>>>>>>>> transactions. > >>>>>>>>>>>>>>>>>>> EXPECTED: cancel out all transactions except the one for > >> qty 3 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Jane buys 5 purple pens and subsequently returns two of > >> them. She > >>>>>>>>>>>>>>>> buys > >>>>>>>>>>>>>>>>>> two > >>>>>>>>>>>>>>>>>>> more. EXPECTED: No transactions match exactly, so > >> nothing is > >>>>>>>>>>>>>>>> cancelled > >>>>>>>>>>>>>>>>>> out > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Data: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> data=: 0 : 0 > >>>>>>>>>>>>>>>>>>> seq key qty > >>>>>>>>>>>>>>>>>>> 1 1 1 > >>>>>>>>>>>>>>>>>>> 2 1 _1 > >>>>>>>>>>>>>>>>>>> 3 1 1 > >>>>>>>>>>>>>>>>>>> 4 2 1 > >>>>>>>>>>>>>>>>>>> 5 2 1 > >>>>>>>>>>>>>>>>>>> 6 2 3 > >>>>>>>>>>>>>>>>>>> 7 2 _1 > >>>>>>>>>>>>>>>>>>> 8 2 _1 > >>>>>>>>>>>>>>>>>>> 9 3 5 > >>>>>>>>>>>>>>>>>>> 10 3 _2 > >>>>>>>>>>>>>>>>>>> 11 3 2 > >>>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>>> tbl =: ,. ' ' cut every cutLF data > >>>>>>>>>>>>>>>>>>> 'seqs keys qtys' =: |: ". every }. tbl > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> Goal: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals =: 0 : 0 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goal > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> cancelled > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> credit > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ok > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> cancelled > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> cancelled > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ok > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> credit > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> credit > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ok > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ok > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ok > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> tbl,.(cutLF goals) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |seq|key|qty|goal | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |1 |1 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |2 |1 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |3 |1 |1 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |4 |2 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |5 |2 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |6 |2 |3 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |7 |2 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |8 |2 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |9 |3 |5 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |10 |3 |_2 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |11 |3 |2 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> One approach: > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> applycredits =: 3 : 0 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals=.(<'goal') > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> creditids=.0 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> for_i. (i. # seqs) do. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> key=.i{keys > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> seq=.i{seqs > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> qty=.i{qtys > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> nextcredit =.| {. qtys #~ ((key=keys)*(seqs>seq)*(qtys< > >> 0)) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> if. nextcredit = qty do. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals=.goals,<'cancelled' > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> creditids =. creditids, seqs #~ > >> ((key=keys)*(seqs>seq)*(qtys<0)) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> elseif. creditids e.~ seq do. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals=.goals,<'credit' > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> elseif. do. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals=.goals,<'ok' > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> end. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> end. > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> goals > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> ) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> tbl ,. ( applycredits 0 ) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |seq|key|qty|goal | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |1 |1 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |2 |1 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |3 |1 |1 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |4 |2 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |5 |2 |1 |cancelled| > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |6 |2 |3 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |7 |2 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |8 |2 |_1 |credit | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |9 |3 |5 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |10 |3 |_2 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> |11 |3 |2 |ok | > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> +---+---+---+---------+ > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> (cutLF goals) -: ( applycredits 0 ) > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> 1 > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>>>> thanks for any input > >>>>>>>>>>>>>>>>>>> ------------------------------ > >> ------------------------------ > >>>>>>>>>>>>>>>> ---------- > >>>>>>>>>>>>>>>>>>> For information about J forums see > >> http://www.jsoftware.com/forum > >>>>>>>>>>>>>>>> s.htm > >>>>>>>>>>>>>>>>>> ------------------------------ > >> ------------------------------ > >>>>>>>>>>>> ---------- > >>>>>>>>>>>>>>>>>> For information about J forums see > >> http://www.jsoftware.com/forum > >>>>>>>>>>>> s.htm > >>>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>>> ------------------------------ > >> ------------------------------ > >>>>>>>>>>>> ---------- > >>>>>>>>>>>>>>>> For information about J forums see > >> http://www.jsoftware.com/forum > >>>>>>>>>>>> s.htm > >>>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>>> > >>>>>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> > >>>>>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>>>>> > >>>>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>>>> > >>>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>>> > >>>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>> > >>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>>> > >>>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>>> > >>>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>>> > >>>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>>> > >>>>>> -- > >>>>>> regards, > >>>>>> ==================================================== > >>>>>> GPG key 1024D/4434BAB3 2008-08-24 > >>>>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > >>>>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > >>>>>> ------------------------------------------------------------ > >> ---------- > >>>>>> For information about J forums see http://www.jsoftware.com/ > >> forums.htm > >>>>> > >>>>> ---------------------------------------------------------------------- > >>>>> For information about J forums see http://www.jsoftware.com/forums.htm > >>>> > >>>> -- > >>>> regards, > >>>> ==================================================== > >>>> GPG key 1024D/4434BAB3 2008-08-24 > >>>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > >>>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > >>> > >>> -- > >>> regards, > >>> ==================================================== > >>> GPG key 1024D/4434BAB3 2008-08-24 > >>> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > >>> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm -- regards, ==================================================== GPG key 1024D/4434BAB3 2008-08-24 gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
