clojure.spec/double-in defines a spec that tests whether a double is greater 
than or equal to a minimum value and less than or equal to a maximum value.  
This is useful for many purposes, but sometimes you need to test whether a 
double is greater than a minimum or less than a maximum.  There are many 
mathematical applications that assume half-open intervals (> min and <= max; >= 
min and < max) or open intervals (> min and < max).  Example: You are going to 
divide by the double, so it must be > 0, not just >= 0.  Providing double-in 
but only allowing it to specify closed intervals seems arbitrary.

It's easy enough to write open-interval and half-open interval tests, either 
using s/and with s/double-in, or just by defining a function from scratch.  
However, if Clojure is going to provide double-in, why make us do that?  Why 
not have a common interface that adds two optional keywords to specify whether 
the bounds are open or closed?  This is not a request to add the kitchen sink; 
it's a natural extension to deal with a common use case.  The alternative would 
be to define three additional versions of double-in, and people will do that on 
their own, or define a new more flexible double-in if there's no built-in spec 
function that does it.

I'd suggest a new keyword with one of the following forms: 

:min-open, :min-greater, :min-greater-than, :min-strict, :greater-min, 
:strict-min, etc.,

and a corresponding keyword for the max side.

Default values should be false, for compatibility with the current definition 
of double-in.

I can add a JIRA ticket if this seems worthwhile.  I wanted to see what people 
think first.  (I'd have to sign up with the JIRA system, but I assume I'm 
allowed to do that.)

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojurescript+unsubscr...@googlegroups.com.
To post to this group, send email to clojurescript@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.

Reply via email to