Hi all,

Coming from python, I use dataclasses 
<https://docs.python.org/3/library/dataclasses.html> a lot to tie complex 
collections of data together. I like using them in combination with type 
hints so that it's clearer to me at a glance what kind of data a function 
is processing.  When my data starts to look like a dict of dicts of lists, 
I turn to dataclasses to help my simplify.

So far in my Clojure journey, I've stumbled across two features that could 
help me do something similar.  First are datatypes 
<https://clojure.org/reference/datatypes> (deftype, defrecord), and second 
is using maps with spec <https://clojure.org/guides/spec>.  Based on my 
reading, using spec to define types seems like a really flexible system 
that does built in testing for me.  I was surprised to read that specs 
can't quite be treated like types 
though: https://ask.clojure.org/index.php/10464/can-i-use-spec-as-type-hint.  
Maybe the intention is to use the :pre and :post keys in a function's 
options as type hints?

I'm curious if I'm thinking along the right lines here, or if there are 
other language features I could be looking at.  Also curious if anyone has 
suggestions for books or articles that explore data typing options in 


 - Kovas

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
For more options, visit this group at
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 

Reply via email to