Is there a chance to have the j805 j.dll re-built in a way that makes it usable? I need a functioning j.dll for serious work/calculations and would prefer not to use a beta version but the latest stable release. Or is j806 beta considered safe and stable enough?
Sent from my iPhone > On 15 Apr 2017, at 01:52, bill lam <[email protected]> wrote: > > 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
