There were a number of talks at the Conj that spoke directly to this
challenge. One of the approaches I liked was Prismatic's schema.

https://github.com/Prismatic/schema

And here's Aria's talk on it, since he can explain it better than I.

https://www.youtube.com/watch?v=o_jtwIs2Ot8



On Sat, May 17, 2014 at 10:22 AM, Mike Fikes <mikefi...@me.com> wrote:

> I've never used a dynamically-typed language and an issue I've encountered
> with Clojure is a difficulty with readily "seeing" the data structures
> being consumed or returned by functions I'm writing, especially when I come
> back to them several days later and if those structures get to be somewhat
> nested or otherwise complex.
>
> As a small concrete example, lets say that I currently have a function
> that accepts data that looks like {:a "A" :b "B"} and, at some point I
> change the internals of the function to instead operate on data that looks
> like [[:a "A"] [:b "B"]].
>
> I could see the docstring communicating that the initial implementation of
> the function accepts a map, and then perhaps it boils down to finding
> suitable language to describe the structure in the revised implementation
> ("sequence of pairs", "relation", or some other language suitable to the
> abstraction).
>
> I suppose this is no different than the "documentation" aspect that
> generics provided in Java when we went from raw types like List to
> List<String>, but, of course, generics can get unwieldy rather quickly with
> things like List<Map<String,Set<Integer>>>.
>
> Does there exist idiomatic language that developers employ in their
> docstrings to quickly convey this kind of info? I see that the docstrings
> for clojure.core are fairly readable, but they tend to operate on very
> simple data structures.
>
> --
> 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.
> 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 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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to