The performance of dyad i. is quite good. If size of dictionary is small, eg thousands of items only. Then a simplistic implementation of 2 arrays, 1 for keys and 1 for values should be good enough.
On Mon, Nov 18, 2019, 7:10 PM Danil Osipchuk <danil.osipc...@gmail.com> wrote: > symbols are essentially names optimized for lookup and comparison, as such > they are useful to implement locales efficiently, if one to build an map > using those as keys, indeed one gets something resembling K dictionaries > http://www.math.bas.bg/bantchev/place/k.html : > > "Another distinguishing feature of K is the use of dictionaries: > associative tables whose keys are symbols, i.e., internalized strings. In > turn, dictionaries are the building material of a hierarchically organized > global data space called the K-tree" > > https://github.com/kevinlawler/kona/wiki/Dictionaries > > This is important case of course, but still a restriction. Tables in Lua > are more fundamental: > > "The table type implements associative arrays. An associative array is an > array that can be indexed not only with numbers, but also with strings or > any other value of the language, except *nil*. Moreover, tables have no > fixed size; you can add as many elements as you want to a table > dynamically. Tables are the main (in fact, the only) data structuring > mechanism in Lua, and a powerful one. We use tables to represent ordinary > arrays, symbol tables, sets, records, queues, and other data structures, in > a simple, uniform, and efficient way. Lua uses tables to represent packages > as well. When we write io.read, we mean "the read entry from the io > package". For Lua, that means "index the table io using the string "read" > as the key". > > > > пн, 18 нояб. 2019 г. в 13:11, 'Mike Day' via Programming < > programm...@jsoftware.com>: > > > It's a long time since I played with s: - do J symbols have any > > relevance to dictionaries/directories? > > > > APL/J cousin, K, appears to have the dictionary as pretty central to its > > data organisation, but maybe > > that's more akin to J's locales. > > > > Neither topic helpful probably relevant here, but might start a hare! > > > > Mike > > > > On 18/11/2019 02:49, Henry Rich wrote: > > > In J I find myself coming back to simple arrays for most data > structures. > > > > > > Trees can be represented as boxes containing subtrees. That works, > > > but is usually more trouble than simply managing an array. > > > > > > Linked lists are used only for efficiency, and in the cases where that > > > matters you can easily have a list of indexes to an array of data > items. > > > > > > Stacks are just lists, as Devon said. > > > > > > The datatype I really want is a directory object that acts as an > > > efficient and easy-to-use associative memory. You put key/values in > > > and then retrieve a value by presenting its key. Has anyone written > > > an addon for that? > > > > > > (Note: the primitive 128!:8 (create a hash for a noun) was added to > > > J9.01 with this in mind) > > > > > > Henry Rich > > > > > > On 11/17/2019 8:16 PM, 'Bo Jacoby' via Programming wrote: > > >> I failed to communicate the links before, but here they are. > > >> Ordinal fractions are somewhat like infinite-dimensional arrays. > > >> > > > https://www.academia.edu/10031088/ORDINAL_FRACTIONS_-_the_algebra_of_data > > >> > > >> > > >> > > >> http://www.statemaster.com/encyclopedia/Ordinal-fraction > > >> Bo. > > >> > > >> Den søndag den 17. november 2019 22.07.28 CET skrev Devon > > >> McCormick <devon...@gmail.com>: > > >> Trees are simple to implement in J - > > >> https://code.jsoftware.com/wiki/User:Devon_McCormick/Trees - as are > > >> graphs > > >> - > > >> > > > https://code.jsoftware.com/wiki/NYCJUG/2009-11-10/BreadthFirstGraphTraversal > > >> > > >> . > > >> A stack is simple to implement too but I'm not sure why you would > > >> want to > > >> as it's simply a vector with very restrictive rules to manipulate it. > > >> Linked lists make no sense in a language with dynamic arrays for much > > >> the > > >> same reason since a linked list is mainly a way of implementing > dynamic > > >> arrays but has benefit only in a language which lacks these natively. > > >> > > >> On Sun, Nov 17, 2019 at 8:24 AM 'Bo Jacoby' via Programming < > > >> programm...@jsoftware.com> wrote: > > >> > > >>> 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.... > > >>> | > > >>> > > >>> | > > >>> > > >>> | > > >>> > > >>> > > >>> > > >>> > > >>> Den søndag den 17. november 2019 07.12.02 CET skrev Raul Miller > < > > >>> rauldmil...@gmail.com>: > > >>> > > >>> Arrays are roughly analogous to computer memory. > > >>> > > >>> Put different: I think you are asking the wrong question. > > >>> > > >>> (Partially: it's worth thinking about why you pick whichever data > > >>> structures...) > > >>> > > >>> ((It can also sometimes be useful to look on rosettacode for > > >>> examples of > > >>> various daya structure handling mechanisms.)) > > >>> > > >>> Thanks, > > >>> > > >>> -- > > >>> Raul > > >>> > > >>> On Sat, Nov 16, 2019 at 6:00 PM Jimmy Gauvin <jimmy.gau...@gmail.com > > > > >>> wrote: > > >>> > > >>>> Hi, > > >>>> > > >>>> when dealing with data structures other than arrays such as trees, > > >>> graphs, > > >>>> stacks, linked lists what other programming language do you resort > > >>>> to ? > > >>>> > > >>>> Or do stick with J for all endeavours? > > >>>> > > >>>> > > >>>> Jimmy > > >>>> > ---------------------------------------------------------------------- > > >>>> 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