Hmmm... how would that work? I want datafy to work on java.time objects
- not Clojure maps (as you showed).
On 30/01/2020 18:37, Christian Gonzalez wrote:
I think you could also add some metadata to allow datafy-ing instead
of extending the protocol:
(with-meta {:name "John Doe" :language "us"}
{`clojure.core.protocols/datafy (fn [x] ...)})
On Thursday, January 30, 2020 at 10:28:20 AM UTC-8, Jim foo.bar wrote:
Moreover, following the mailing discussion linked from the
clojure.org <http://clojure.org> site, leads to the following
quote from Rich - about 10 years ago :)
/If a protocol comes with Clojure itself, avoid extending it to
types //
//you don't own, especially e.g. java.lang.String and other core
Java //
//interfaces. Rest assured if a protocol should extend to it, it
will, //
//else lobby for it. /
On 30/01/2020 17:58, dimitris wrote:
Well, the official Clojure guidelines are to NOT extend
protocols, unless you own either the protocol of the type(s) [1].
In particular these lines:/
/
/If you are a library developer, you should not extend if you own
neither the protocol nor the target./
/You should take particular care when extending protocols
included with Clojure itself./
/
/
Kind regards,
Dimitris
[1]: https://clojure.org/reference/protocols#_extend_via_metadata
<https://clojure.org/reference/protocols#_extend_via_metadata>
On 30/01/2020 17:50, Sean Corfield wrote:
Is there a reason you’ve mirrored those
protocols/implementations rather than just use Clojure’s
built-in versions?
As it stands, your library wouldn’t work with other tooling that
builds on Clojure’s datafy/nav (REBL, for example).
Sean Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
*From: *dimitris <javascript:>
*Sent: *Thursday, January 30, 2020 9:05 AM
*To: *Clojure <javascript:>
*Subject: *Feedback on datafy/nav project
Hi folks,
I'm looking for honest and constructive feedback on [1] - not so
much
about the actual implementation (even though these are welcome
too), but
rather about the general idea of basing everything on top of
(mirrored
versions) `datafy` and `nav` (in this way). There is a TL;DR
section at
the very bottom that describes the approach in 4 short sentences.
Many thanks in advance,
Dimitris
[1]: https://github.com/jimpil/jedi-time
<https://github.com/jimpil/jedi-time>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
<javascript:>
Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clo...@googlegroups.com <javascript:>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
<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 clo...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/d0db9e09-6419-2e13-3a0b-9bacf2bbf4fd%40gmail.com
<https://groups.google.com/d/msgid/clojure/d0db9e09-6419-2e13-3a0b-9bacf2bbf4fd%40gmail.com>.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
<javascript:>
Note that posts from new members are moderated - please be
patient with your first post.
To unsubscribe from this group, send email to
clo...@googlegroups.com <javascript:>
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
<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 clo...@googlegroups.com <javascript:>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/5e331755.1c69fb81.ff1ad.21cf%40mx.google.com
<https://groups.google.com/d/msgid/clojure/5e331755.1c69fb81.ff1ad.21cf%40mx.google.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
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
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/a0a471ae-c4c6-4b92-86a6-5cefe099bdd7%40googlegroups.com
<https://groups.google.com/d/msgid/clojure/a0a471ae-c4c6-4b92-86a6-5cefe099bdd7%40googlegroups.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
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
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.
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/b138e03a-5b3d-2593-36e1-4e985f5fe08c%40gmail.com.