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

Reply via email to