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

Reply via email to