i just want to reiterate the point Alex Shroyer made about k dictionaries i found them extremely useful and upon occasion groused about not having them in J
i used them to represent an (English) dictionary very facile efficient and fast the fact is our world is (mostly) filled with ragged objects ... not the regular arrays that J folk so love eg HTML language dictionaries, encyclopedias... outlines... ~greg heil picsrp.github.io i.tgu.ca/real_cal -- from: Henry Rich <henryhr...@gmail.com> to: programm...@jsoftware.com date: Jan 31, 2022, 10:43 AM subject: [Jprogramming] Dictionaries WAS: Report on the J wiki meeting of January 27, 2022 >Quite right. Jan-Pieter has at least a good start on the model. What I am >suggesting is that the 'more integrated implementation' might not need to be >much more integrated than the J script. Searching and sorting are already J >primitives. >The deficiency in J is that m&i. gives you a hashtable for searching m, but if >you modify m you have to recalculate the hash from scratch. This makes m&i. a >good read-mostly Dictionary but slow for frequent updates. If we can refine >the model to the point that such inefficiency is the worst problem we have, a >little integrated support could finish the package. Henry Rich -- from: Eric Iverson <eric.b.iver...@gmail.com> to: Programming forum <programm...@jsoftware.com> date: Jan 31, 2022, 10:37 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >A good and complete model is the first step. Then it is a matter of how much >it is used and what drawbacks it might have that would be addressed by a more >integrated implementation. -- from: Henry Rich <henryhr...@gmail.com> to: programm...@jsoftware.com date: Jan 31, 2022, 10:27 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >I have looked into this quite a bit. I am not convinced that Dictionary is a >fundamental datatype like number or letter, or that the current symbol support >is deficient. That makes the first questions What is a Dictionary? and Where >can a Dictionary be used in J? >The use case that would be important to me is a key-value store, aka >associative memory, where the Dictionary remember keys and values and later >returns a value when presented with the key. This feels to me like a package >written in J rather than a J primitive. A Dictionary would be a numbered >locale. The place where I could see added support inside J would be in adding >to and deleting from hashtables, specifically ones created/used by m&i. . >I invite proposals on what a Dictionary package needs to do. I have done this >before, and Jan-Pieter Jacobs responded with a package. Quoting from his >message of 20210327: *** QUOTE install'github:jpjacobs/types_dict@main' >(except on (my) android, where github installs don't seem to work, neither in >the Gui version JA nor on the commandline via termux) >It is pretty simple in use, you just use: d=: dict keys;vals for creating the >dictionary, which is a OOP object, having the following methods: get, set, >map, sort, destroy, whose documentation is contained in help_pdict_ >For performance, the create verb precomputes the lookup for the get verb, both >forward get (key->value) and backward get inv (value->first key) upon object >creation. >*** END QUOTE >I have not looked into this package, but it seems to me to have the right >entry points. Can we take that as a starting point to see what needs to be >added? The first step of course would be to put the addon under Package >Manager. Henry Rich -- from: Elijah Stone <elro...@elronnd.net> to: programm...@jsoftware.com date: Jan 31, 2022, 9:58 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >I agree with Eric regarding the challenges of adding dictionaries. >One issue: I think a necessary prerequisite is improved symbols. -- from: Eric Iverson <eric.b.iver...@gmail.com> to: Programming forum <programm...@jsoftware.com> date: Jan 31, 2022, 8:36 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >It seems to me that the big distinction between J and python where J falls far >short is not in the core language but in the addon libraries. I encourage J >fans to work away at adding important addons to J! -- from: Eric Iverson <eric.b.iver...@gmail.com> to: Programming forum <programm...@jsoftware.com> date: Jan 31, 2022, 8:28 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 -- >A J dictionary type is a good idea and it has been kicked around many times >before. The hard part is not implementing it, but doing a careful and thorough >spec that is backed by a complete model written in J. >Presented with a full spec that had community buy in, would probably be >followed by implementation. -- from: Alex Shroyer <ashro...@gmail.com> to: programm...@jsoftware.com date: Jan 31, 2022, 8:14 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 -- >agree with Raoul that competing with Python is not a good idea. But J can >learn from Python's decisions (good and bad) to grow and improve. In my >opinion, numpy is Python's "killer app" because it brings reasonable >performance without much conceptual overhead. The feature of Python that >enabled numpy is its extensibility, down to the C layer. There are other good features of Python that J could copy, in particular the 'dictionary' data type. The array language K has dictionaries, so J might take some inspiration from there for integrating them into the language. Cheers, Alex -- from: Raul Miller <rauldmil...@gmail.com> to: programm...@jsoftware.com date: Jan 31, 2022, 7:02 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 -- What does "competing with python" mean? >(I suspect that we must "compete" in some contexts, but I also imagine that >"competition" would be irrelevant in many, many contexts. But.. as a >programming exercise, I don't know how to conceptualize these distinctions.) Thanks, -- from: Raoul Schorer <raoul.scho...@gmail.com> to: programm...@jsoftware.com date: Jan 31, 2022, 2:30 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >Just my 2c, but I think that competing with python in general is somewhat >delusional. I think the key point for expanding J use to have a "killer J >app". For example, an improved clone of or excellent plugin for VisiData ( >https://www.visidata.org/) is my idea of a killer app. But someone here may >have a better idea? >Cheers, Raoul >-- from: Ric Sherlock <tikk...@gmail.com> to: Programming JForum <programm...@jsoftware.com> date: Jan 30, 2022, 6:50 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >Yes from a data structure point of view, inverted tables get you a lot of the >way (note they're also available in the 'general/misc' addon - load >'general/misc/inverted' ) and I've used them to good effect in my >'data/struct' addon (https://github.com/tikkanz/data_struct). I agree that J's >arrays are more general, flexible & powerful. But when you're dealing with a >tabular data set there is an overhead to keeping the fields in a table in sync >that dataframes can help with. Perhaps it's something abstracting the >structure so you don't have to deal so much with the mechanics of manipulating >it? At least for me :) -- from: Elijah Stone <elro...@elronnd.net> to: Programming JForum <programm...@jsoftware.com> date: Jan 30, 2022, 6:29 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 -- https://code.jsoftware.com/wiki/Essays/Inverted_Table, perhaps? >That said, I think a great strength of j is that data are _not_ explicitly >tabular. The associations are defined in an ad-hoc manner as needed by the >programmer. This is also an essential difference between the array paradigm >and the relational paradigm (cf SQL): in the former, pointers come with >implicit context; in the latter, that context must be explicit. -E >P.S. regarding analysis/optimization: I would love to see it, but for some >reason everybody is scared of building a compiler because of the parsing >problem. -- from: Ric Sherlock <tikk...@gmail.com> to: Programming JForum <programm...@jsoftware.com> date: Jan 30, 2022, 6:21 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >Yes, I've been thinking that a Dataframes equivalent in J would be useful. >Most things are already possible with J's arrays, but conceptually DataFrames >are well understood by many now, and they make it easy to work with datasets >as named fields. I've spent a reasonable amount of time working with Pandas, >but have recently been using Polars (Rust backend with Python bindings) which >really shines for larger datasets. Performance (especially read/write) is >awesome, and the LazyFrames which optimise your query/analysis plan make a big >difference too. I haven't taken enough time to explore it, but maybe Jd is the >starting point in this space for J? -- from: Michail L. Liarmakopoulos <m.l.liarm...@gmail.com> to: programm...@jsoftware.com date: Jan 30, 2022, 12:06 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 Hello Elijah, >Yes, I believe you're right. I don't have much experience with them yet >though, so I cannot compare. Best, --- Michail L. Liarmakopoulos, MSc -- from: Elijah Stone <elro...@elronnd.net> to: programm...@jsoftware.com date: Jan 30, 2022, 12:04 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 -- On Sun, 30 Jan 2022, Michail L. Liarmakopoulos wrote: >> There is also out there an amazing python library for symbolic calculations >> (like the ones you can do with Mathematica or WolframAlpha: symbolic >> evaluation of definite and indefinite integrals, symbolic solutions of diff. >> equations, symbolic solutions of algebraic and Diophantine equations >> etc...). It's called sympy. >> But I'm not sure if you'd like J to include symbolic computations too or if >> the aim of the language is to excel only in numerics, data analytics, stats, >> whatever can be quantified pretty much. Aren't there some symbolic calculus library functions? >(Though I doubt they're anywhere near the level of mathematica, let alone >sympy.) -- from: Michail L. Liarmakopoulos <m.l.liarm...@gmail.com> to: programm...@jsoftware.com date: Jan 30, 2022, 12:01 PM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 Hello all, >I find any parallels between python and J pretty interesting, being a person >with some python experience and an interest of the applications of both python >and J in mathematical modelling, analytics, computational math and perhaps >computational physics too. >If you'd like to bring some features from the python math/analytics >libraries/ecosystem in J, I'd suggest you to look at the features of three >libraries: >- numpy (I believe most features are already covered from the built in >features of an array language such as J) - pandas ( a nice library for manipulating csv files within python as dataframe objects -- see the dataframes from the R language) >- scipy (a collection of methods and functions ranging from solving >numerically: differential equations, evaluating definite integrals, >constrained and unconstrained optimization, and I believe statistics too) >There is also out there an amazing python library for symbolic calculations >(like the ones you can do with Mathematica or WolframAlpha: symbolic >evaluation of definite and indefinite integrals, symbolic solutions of diff. >equations, symbolic solutions of algebraic and Diophantine equations etc...). >It's called sympy. >But I'm not sure if you'd like J to include symbolic computations too or if >the aim of the language is to excel only in numerics, data analytics, stats, >whatever can be quantified pretty much. >My few cents as food for thought. Best regards, --- Michail L. Liarmakopoulos, MSc -- from: R.E. Boss <r.e.b...@outlook.com> to: "programm...@jsoftware.com" <programm...@jsoftware.com> date: Jan 30, 2022, 11:39 AM subject: Re: [Jprogramming] Report on the J wiki meeting of January 27, 2022 >I copied the first chapter of the book A Journey to Core Python (in >https://drive.google.com/file/d/1p1uIANh-LFniNNRqjDeeWWd4_-ddEZmz/view?usp=sharing) > and have the question: do we want that J is competitive with Python? >If the answer is yes, the next question is: what is the to do list to be >competitive and how long will it take? >(And then the unavoidable question: WHY?) >Personally I think we must aim on the niches in the market, as there are the >mathematical oriented people, e.g. the broad scientific community. >Then all people experienced in Excel or other spreadsheets or calculation >tools. >Schools and universities. Financial and statistical oriented people. >What we should do, IMHO, is >- to emphasize the strengths of J, >- to improve (considerably) the error handling of J, >- to admit the steep learning curve, >- to facilitate the use of mnemonics instead of primitives (I tried this >afternoon the primitives.ijs for half an hour, but was not capable of use any >mnemonic, not even with >https://code.jsoftware.com/wiki/Primitives_to_Mnemonics) >- to decide which of the features, benefits or applications (of Python) we >want J to have. >Just my 2 cents. >R.E. Boss ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm