--
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+unsubscribe@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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Alex – care to elaborate? When I get this question it would be nice to be able to tell people why the core team isn't interested.
--
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+u...@googlegroups.com.
I think the path navigator DSL feels slightly un-Clojurey. But other than that, I think Specter is pure magic and Nathan is right that editing deeply nested data structures in Clojure is a point of deficiency, especially for people coming from mutable languages/data structures. To that extent, I think Specter does a yeoman's job of filling that "missing piece" of Clojure. Again, it's only the navigator DSL that feels a little un-Clojurey to me.
On Wed, Feb 15, 2017 at 10:05 PM Alex Miller <al...@puredanger.com> wrote:
On Wednesday, February 15, 2017 at 3:41:36 PM UTC-6, Nathan Marz wrote:Alex – care to elaborate? When I get this question it would be nice to be able to tell people why the core team isn't interested.--The default answer to all such questions is no. Clojure has a small library and Rich wants it to remain that way.
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+unsubscribe@googlegroups.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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+u...@googlegroups.com.
My thoughts on this were spurred by this tweet from Nikita ProkopovI generally don't have the need to alter stuff deep down in data structures, but when I do, I don't mind writing the functions to do so.The two things that worries me about Specter are1) One more path-DSL to learn for both my team and I.2) If Clojure were an OO-language, wouldn't I be violating the law of Demeter https://en.m.wikipedia.org/wiki/Law_of_Demeter when using specter?I realize that these are not arguments for or against Specter going into Clojure, more my thoughts on why I'm not using it.Erik.--i farta
--
On Wednesday, February 15, 2017 at 3:41:36 PM UTC-6, Nathan Marz wrote:Alex – care to elaborate? When I get this question it would be nice to be able to tell people why the core team isn't interested.The default answer to all such questions is no. Clojure has a small library and Rich wants it to remain that way.
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+unsubscribe@googlegroups.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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+unsubscribe@googlegroups.com.
What might be a Clojurey syntax for doing path navigation? In other words how could get-in be extended so that it could parse nested vectors like it parses nested maps? Thinking out aloud, an integer in the path when the data structure at that level is a vector should treat the integer as an index.
I think the path navigator DSL feels slightly un-Clojurey. But other than that, I think Specter is pure magic and Nathan is right that editing deeply nested data structures in Clojure is a point of deficiency, especially for people coming from mutable languages/data structures. To that extent, I think Specter does a yeoman's job of filling that "missing piece" of Clojure. Again, it's only the navigator DSL that feels a little un-Clojurey to me.
On Mar 3, 2017 6:27 PM, "John Newman" <joh...@gmail.com> wrote:I think the path navigator DSL feels slightly un-Clojurey. But other than that, I think Specter is pure magic and Nathan is right that editing deeply nested data structures in Clojure is a point of deficiency, especially for people coming from mutable languages/data structures. To that extent, I think Specter does a yeoman's job of filling that "missing piece" of Clojure. Again, it's only the navigator DSL that feels a little un-Clojurey to me.+1. the functionality is great, but the api imho is not just a little unclojurish, it's massively unclojurish. MAP-VALS? END? No way, for me at least.Specter is a specific solution to a general problem. all such solutions will probably boil down to more or less the same thing, implementation-wise. but the interface makes all the diff. for example, it's easy to imagine a more xsl-like (or even css-like) syntax with the same functionality.
Gregg, agreed. But as an aside, as an external library, like core.async, Specter is a shining example of why Clojure (and lisp) is such an awesome platform.
The fact that Nathan was able to even implement this functionality, in some places even more performant than core idioms, imho proves that Clojure has power well beyond what the core team can or will provide to users. That's a good sell for both Clojure as a platform and for Specter as a library.
--
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+unsubscribe@googlegroups.com.
>> Specter is not a DSL.Specter implements a set of terms (navigators) specific to the library that are interpreted by the library (the transform function) to accomplish some task for a specific domain (manipulating data structures). In the same way, `update-in` is a DSL. Both Specter and `update-in` support certain operators and have certain behaviors under difference occasions. Specter may compile down to composed functions, or Clojure code, while `update-in` is always interpreted, but the net effect is still the same. They both are languages specific to a certain domain.
Okay, let's call it a Context Specific Vocabulary (CSV) ;)
Every function is at least a mini DSL, IMO. And as promising as Spec sounds, I still haven't trained up on it because of the size of the new vocabulary (or DSL or whatever you want to call it) it introduces. Adding semantics is expensive for users.
Just wondering here, but would it be impossible for a Specter like system to piggyback on Specs operators for it's navigator vocabulary? Or are the semantics between the operators and navigators too different?
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+u...@googlegroups.com.
--“One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.”
(Robert Firth)
--
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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+u...@googlegroups.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
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
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+u...@googlegroups.com.
see the section titled "deftype and defrecord?" at https://clojure.org/reference/datatypesSpecter traffics in abstractions, afaik, just like clojure. it does not depend in any way on application concepts like "bank account", so i think it's a little unfair to call it x-specific for any x; that makes it sound less general than clojure itself, which i do not believe is the case. so it is indeed a good _candidate_ for core. but since i think there are many unexplored ways to do the same thing, its too soon. Not to mention the aesthetic question of whether all the UPPER CASE stuff is a good idea. Personally i find it a little too magical and opaque.gregg
--
--
What might be a Clojurey syntax for doing path navigation? In other words how could get-in be extended so that it could parse nested vectors like it parses nested maps? Thinking out aloud, an integer in the path when the data structure at that level is a vector should treat the integer as an index.What about ALL? What would be Clojurey way of doing ALL? How about asterisk *? Or maybe underscore _? Or nil?