quite cool. did not know about:
i. _5 4 3 2 1 0 ________________________________ From: Raul Miller <rauldmil...@gmail.com> To: Programming forum <programm...@jsoftware.com> Sent: Friday, March 14, 2014 8:01:31 PM Subject: Re: [Jprogramming] Sorry state of slow parsing of JSON in J Here's a better definition for thru: thru=: <./ + i.@(+*)@-~ Example use: 10 thru 20 10 11 12 13 14 15 16 17 18 19 20 20 thru 10 20 19 18 17 16 15 14 13 12 11 10 6 thru _5 6 5 4 3 2 1 0 _1 _2 _3 _4 _5 thru/2 8 2 3 4 5 6 7 8 Thanks, -- Raul On Mon, Mar 3, 2014 at 10:52 AM, Raul Miller <rauldmil...@gmail.com> wrote: > J's dictionary data type is probably the locale. > > http://www.jsoftware.com/pipermail/programming/2014-February/035615.html > has a list of urls documenting locales. > > That said, note that names within locales have syntactic limits. So > you'd have to map your identifier into something suitable as a name. > This process is analogous to hashing or to numeric base conversion. > For example: > > thru=: [ + 1 i.@+ -~ > 10 thru 20 > 10 11 12 13 14 15 16 17 18 19 20 > > alph=: a.&i. > alph 'az' > 97 122 > > NB. say this with a guido sarducci accent: > thrua=: thru&.alph > 'a' thrua 'z' > abcdefghijklmnopqrstuvwxyz > > namechars=: '_',('a' thrua 'z'),('A' thrua 'Z'),'0' thrua '9' > > num2name=: [ , namechars {~ (#namechars) #.inv ] > > 'prefix' num2name 8675309 > prefixHQVt > > The prefix prevents accidental collisions with other names within the > locale, if you need that. > > So if we want a dictionary with numeric keys (which could instead have > been a sparse array), we might use: > > dictname=: ('z' num2name ]) , '_', [ ,'_'"_ > > setdict=:1 :0 > : > (m dictname x)=: y > ) > > getdict=: ".@dictname > > 123 'example' setdict |:i.3 2 > 0 2 4 > 1 3 5 > 'example' getdict 123 > 0 2 4 > 1 3 5 > > So anything that you can convert to a nonnegative integer can be used > as dictionary key with a system like this. > > Obviously, though, other systems are possible. (For example, you > could use a sparse array instead of a locale, that will give you > different performance characteristics.) > > And I see Pascal Jasmin has just now posted a similar proposal, so > I'll stop here - I really have some other tasks I need to get done. > > Thanks, > > -- > Raul > > > On Mon, Mar 3, 2014 at 10:06 AM, Yike Lu <yikelu.h...@gmail.com> wrote: > > A tangential but related question: does J have a dictionary data type? > > Where can I read about it? > > > > Thanks. > > > > > > On Mon, Mar 3, 2014 at 8:55 AM, Tracy Harms <kalei...@gmail.com> wrote: > > > >> My naïve intuition is that a tree of symbols would be the most direct > route > >> to increased performance. Would that fit with what you suggested here, > >> Raul? > >> On Mar 3, 2014 1:52 AM, "Raul Miller" <rauldmil...@gmail.com> wrote: > >> > >> > We should be able to concatenate boxed arrays with somewhat better > >> > performance. Conceptually speaking, the added box can be treated as an > >> > opaque string (other than reference counting bumps) for the purpose of > >> the > >> > concatenation operation. Conceptually, also, already have some way of > >> > allocating memory in "power of two sized blocks". But memory > management > >> is > >> > a subtle thing, so maybe there is something I am missing? > >> > > >> > Thanks, > >> > > >> > -- > >> > Raul > >> > > >> > > >> > On Mon, Mar 3, 2014 at 12:26 AM, bill lam <bbill....@gmail.com> > wrote: > >> > > >> > > I would be quite happy if J can do that in a few minutes. The > >> > > bottle neck is not string related but J converts Json data into a > >> > > box array. Because concatenation of box arrays cannot be done > >> > > in place, it re-constructs a new box array for each node and this > >> > > is quadratic. > >> > > > >> > > Even if you can use python to parse json, it will still take a > >> > > quadratic operation to convert that parsed data structure > >> > > back to a J box array. Untested. > >> > > > >> > > Пн, 03 мар 2014, June Kim (김창준) писал(а): > >> > > > Hello, > >> > > > > >> > > > I recently tried to work on a JSON file (a bookmark file from > Chrome > >> > > > browser), which is about 28MB. My initial attempt was using the > json > >> > > parser > >> > > > from the J packages. Oh, it was slow. It took more than one > minute on > >> > my > >> > > > machine. > >> > > > > >> > > > Disappointed, but I was kind of expecting the slow performance > >> because > >> > > > string and tree are not what J's strength is. > >> > > > > >> > > > Now I turned to Python and tried parsing the file using the > standard > >> > > > package. Oh, I took about a second. > >> > > > > >> > > > So I can proceed with Python but I want to know if there are any > >> other > >> > > > options working with J with better performance. > >> > > > > >> > > > June > >> > > > > >> ---------------------------------------------------------------------- > >> > > > 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 > >> ---------------------------------------------------------------------- > >> 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