[Cross-posted to RPG400-L and OPENSOURCE]
On Wed, Jul 5, 2017 at 9:39 AM, jacobus erps <jacobus.erps@xxxxxxxxx> wrote:
What RPG misses is a vibrant eco system.
There are no standard libraries to speak of.
Lack of dynamic datastructures, like maps.
I certainly agree on the lack of standard libraries. I would
characterize RPG's ecosystem this way: Fledgling, underpublicized,
growing. I agree it's not "vibrant" yet, but that may change. It's
definitely going in the direction of vibrancy.
There was a recent mini-flurry of Stack Overflow questions by someone
who has been working on their own dynamic data structures for RPG.
(You're not that someone, are you?) Their results so far are here:
<
https://github.com/lppedd/RPG>
Dynamic arrays for RPG have been available for many years now from at
least Mihael Schmidt and Aaron Bartell, perhaps also others I'm not
aware of. (As I said, underpublicized.)
I'm currently working on a versatile map implementation for RPG, hope to
release it soon as an open source project.
The map may contain any combination of key/item data types (integer, packed
decimal, date, etc), iteration is done through cursors with
setll/setgt/read/readp/reade semantics.
The keys and items in a map maybe other maps too.
The Stack Overflow activity I mentioned above culminated in a HashMap
implementation. I'm not sure it's as flexible as what you've described
(allow a map to be a key?), but it ought to work very much like Java's
HashMap.
I'm not too familiar with Java actually, but I know Python pretty
well, and its built-in mapping structure (called "dictionary") doesn't
allow keys to be mutable. Among other things, this prevents you from
inadvertently mutating one key so that it becomes equal to another
key.
If you're not LppEdd (Edoardo Luppi), you probably ought to at least
check out what they've already done. For reference, the most relevant
Stack Overflow question was this:
<
https://stackoverflow.com/questions/44461953/hashmap-implementation-rpgle>
John Y.
As an Amazon Associate we earn from qualifying purchases.