Hey Josh,

> I am feeling the tuples... as long as they can be typed, e.g.
> 
>     <V> myTuple.get(Integer) -- int-indexed tuples
>     <V> myTuple.get(String) -- string-indexed tuples
> In most programming languages, "tuples" are not lists, though they are typed 
> by a list of element types. E.g. in Haskell you might have a tuple with the 
> type
>     (Double, Double, Bool)


Yes, we have Pair<A,B>, Triple<A,B,C>, Quadruple<A,B,C,D>, etc. However for 
base Tuple<A> of unknown length, the best I can do in Java is <A>. :| You can 
see my stubs in the gist:
        https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8 
<https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8> (LINES #21-42)

> If this is in line with your proposal, then we agree that tuples should be 
> the atomic unit of data in TP4.

Yep. Vertices, Edges, Rows, Documents, etc. are all just tuples. However, I 
suspect that we will disagree on some of my tweaks. Thus, I’d really like to 
get your feedback on:

        1. pointers (tuple entries referencing tuples).
        2. sequences (multi-value tuple entries).
        3. # hidden map keys :|
                - sorta ghetto.

Also, I’m still not happy with db().has().has().as(‘x’).db().where()… its an 
intense syntax and its hard to strategize. 

I really want to nail down this “universal model” (tuple structure and 
tuple-oriented instructions) as then I can get back on the codebase and start 
to flush this stuff out with confidence.

See ya,
Marko.

http://rredux.com <http://rredux.com/>


> 
> Josh
> 
> 
> On Mon, May 6, 2019 at 5:34 PM Marko Rodriguez <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi,
> 
> I spent this afternoon playing with n-tuples, pointers, data model 
> interfaces, and bytecode instructions.
> 
>         https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8 
> <https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8> 
> <https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8 
> <https://gist.github.com/okram/25d50724da89452853a3f4fa894bcbe8>>
> 
> *** Kuppitz: They are tuples :). A Map<K,V> extends Tuple<Pair<K,V>>. Tada!
> 
> What I like about this is that it combines the best of both worlds 
> (Josh+Marko).
>         * just flat tuples of arbitrary length.
>                 * pattern matching for arbitrary joins. (k1=k2 AND k3=k4 …)
>                 * pointers chasing for direct links. (edges, foreign keys, 
> document _id references, URI resolutions, …)
>         * sequences are a special type of tuple used for multi-valued entries.
>         * has()/values()/etc. work on all tuple types! (maps, lists, tuples, 
> vertices, edges, rows, statements, documents, etc.)
> 
> Thoughts?,
> Marko.
> 
> http://rredux.com <http://rredux.com/> <http://rredux.com/ 
> <http://rredux.com/>>
> 
> 

Reply via email to