Why can't such a class be implemented using s: Symbols? It does calculate hashes and seems appropriate for dictionaries. What is deficient in the implementation of s: ? Why a new hash function?
~ Gilles Le 2019-11-18 à 08:09, Henry Rich a écrit : > Right now I am thinking that the need for dictionaries could be met by > a class whose instances are associative memories. Key, values, > hashtables, chains if needed would be stored inside the instance. The > interface would be simply x Put y and Get y. I reckon this would be > fast enough without any special support from the interpreter beyond > the hash calculation that is there now. > > Henry Rich > > On 11/18/2019 6:10 AM, Danil Osipchuk 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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm