You're misunderstanding me. I'll try again.
I'm not saying you can't navigate to keys that don't exist in the
data -- but since there would be no corresponding value, the nav
call would be (nav coll k nil) essentially.
If (get coll k) produces some value v, then (nav coll k v) will
take you from the right side (pure data) to the left side
(objects) to the object that "corresponds" to the equivalent
navigation on the right (i.e., within the data).
object -> datafy -> pure data
pure data -> get etc -> new pure data
pure data -> nav -> new object "corresponding" to new pure data
On Mon, Feb 3, 2020 at 3:38 AM Dimitrios Jim Piliouras
<jimpil1...@gmail.com <mailto:jimpil1...@gmail.com>> wrote:
This is what I've done but it contradicts what we said
earlier...
If I navigate to some existing key and it gives me back a
Java object, then it means that the datafied representation
had a key pointing to non data!
I have read your blog post multiple times ;), but I think the
situation you're describing with the foreign keys is rather
unique...
The datafied datetime cannot possibly include all its
possible formats, nor all the possible alternatives - that
would be extremely wasteful and meaningless the way I see it.
Let's take an Instant as an example...it datafies to map of
two keys (:epoch, :second). Does it make sense to add a
:format-iso key in there pointing to a String? Is there any
point navigating to that key? Is there any point navigating
to :epoch or :second? The answer is no, right? Is there a
point in navigating to :zoned-datetime given a zone id? I
would think yes...
On Mon, 3 Feb 2020, 04:47 Sean Corfield, <s...@corfield.org
<mailto:s...@corfield.org>> wrote:
Think of it as a square:
You start with an object of some sort (left side) ->
datafy -> turns it into pure Clojure data (including
metadata). (right side)
Given pure Clojure data, you can navigate through it with
get etc and you stay in the right side (pure data).
Given that pure Clojure data, you can navigate back to
the left hand wide with nav, mimicking how get etc work.
So datafy is L -> R, get is R -> R, nav is R -> L on a
"diagonal" that takes you back to the object world on the
left, corresponding to the place on the right that you'd
get to via get etc.
See if this blog post helps
https://corfield.org/blog/2018/12/03/datafy-nav/
On Sun, Feb 2, 2020 at 1:22 AM Dimitrios Jim Piliouras
<jimpil1...@gmail.com <mailto:jimpil1...@gmail.com>> wrote:
Hi Sean,
Admittedly, I’ve never used REBL, and I did struggle
with the shape and name of the `nav` arguments...
In particular I’m struggling to understand why would
anyone use `nav` to navigate to a key that already
exists in the map...Can’t we just use `get` or `get-in`?
You used the :format as an example, which works with
nil, :iso, or a String pattern as the last arg to
nav. But again, :format is NOT in the datafied
representation.
In essence, I’ve tried to use `nav` to navigate to
things that can be expensive and don’t necessarily
belong in the actual datafied representation.
If the second argument to `nav`, is expected to be a
key already present in the map, then I really don’t
understand what is the point of `nav`.
kind regards,
Dimitris
*From: *Sean Corfield <mailto:s...@corfield.org>
*Sent: *02 February 2020 07:36
*To: *Clojure Mailing List
<mailto:clojure@googlegroups.com>
*Subject: *Re: ANN: jedi-time 0.1.4
This is very cool but I would strongly recommend you
try using this with REBL so you can figure out how to
make the `nav` part work in a more natural way.
nav is intended to work with a key and value (from
the datafied structure), but your nav expects special
values so it doesn't work with REBL.
You can put (java.time.Instant/now) into REBL and
your datafication produces a great data
representation, but you can't navigate into it using
the keys (and values) of the data structure itself.
You can put :format into the nav-> bar and it
defaults to a format you can get a string back, but
none of the other nav calls will work.
You might consider combining the :format key with the
actual format, e.g., :format-iso, :format-yy-MM-dd
and if the key is something your don't recognize,
just let it behave like regular data navigation.
I think you're trying to do too much with nav, beyond
"navigation". I think you could split some of the
"clever" navigation out into a transform function
that takes a datafied time and produces a new
datafied time, and then let nav do the "conversion"
back to Java objects. You've complected the
transforms and the conversion right now.
If you're on Slack, I'm happy to DM about this in
more detail (when you're back from traveling).
Sean
On Sat, Feb 1, 2020 at 6:02 AM dimitris
<jimpil1...@gmail.com <mailto:jimpil1...@gmail.com>>
wrote:
Hi folks,
The first public release of `jedi-time` should be
hitting clojars any
minute now. I am traveling next week so may be
slow to reply to
feedback/bugs/PRs...
https://github.com/jimpil/jedi-time
Kind regards,
Dimitris
--
You received this message because you are
subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to
clojure@googlegroups.com
<mailto:clojure@googlegroups.com>
Note that posts from new members are moderated -
please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are
subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving
emails from it, send an email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/8dbb9c5b-0ab0-fc76-6dc6-5e75b93d452a%40gmail.com.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles Networks, LLC. --
https://worldsinglesnetworks.com/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
--
You received this message because you are subscribed
to the Google
Groups "Clojure" group.
To post to this group, send email to
clojure@googlegroups.com
<mailto:clojure@googlegroups.com>
Note that posts from new members are moderated -
please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed
to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving
emails from it, send an email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/CAD4thx-dwJkYYsGDWnD%3DAc7oaNBHqykGPzYhTHdWQRJmbk1DEw%40mail.gmail.com
<https://groups.google.com/d/msgid/clojure/CAD4thx-dwJkYYsGDWnD%3DAc7oaNBHqykGPzYhTHdWQRJmbk1DEw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed
to the Google
Groups "Clojure" group.
To post to this group, send email to
clojure@googlegroups.com
<mailto:clojure@googlegroups.com>
Note that posts from new members are moderated -
please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed
to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving
emails from it, send an email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/5e3694b9.1c69fb81.8a875.d5ea%40mx.google.com
<https://groups.google.com/d/msgid/clojure/5e3694b9.1c69fb81.8a875.d5ea%40mx.google.com?utm_medium=email&utm_source=footer>.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles Networks, LLC. --
https://worldsinglesnetworks.com/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
--
You received this message because you are subscribed to
the Google
Groups "Clojure" group.
To post to this group, send email to
clojure@googlegroups.com <mailto:clojure@googlegroups.com>
Note that posts from new members are moderated - please
be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to
the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails
from it, send an email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/CAD4thx8GRuxeGd-MrMSti%2BWRV1neRFOLWNh08xpb-Qrmya0kZw%40mail.gmail.com
<https://groups.google.com/d/msgid/clojure/CAD4thx8GRuxeGd-MrMSti%2BWRV1neRFOLWNh08xpb-Qrmya0kZw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the
Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
<mailto:clojure@googlegroups.com>
Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure%2bunsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the
Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/CAE3KzwJ9QuTB7gOMdyja5LyczStJzgsEv9c%3D3_cM%2BoY2_ppPRA%40mail.gmail.com
<https://groups.google.com/d/msgid/clojure/CAE3KzwJ9QuTB7gOMdyja5LyczStJzgsEv9c%3D3_cM%2BoY2_ppPRA%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles Networks, LLC. -- https://worldsinglesnetworks.com/
"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
<mailto:clojure@googlegroups.com>
Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the
Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to clojure+unsubscr...@googlegroups.com
<mailto:clojure+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/CAD4thx_1%2BwQi6_-BkiPLM%3DUvAm84wWF3Ob_%2B%3DZ2nZx-9uHj2fQ%40mail.gmail.com
<https://groups.google.com/d/msgid/clojure/CAD4thx_1%2BwQi6_-BkiPLM%3DUvAm84wWF3Ob_%2B%3DZ2nZx-9uHj2fQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.