A more mathematical kind of set object in clojure

2017-01-27 Thread Michael Lindon
Hi All,

First time poster in this google group. I'm looking for a slightly 
different kind of* set* than the set collection offered in clojure.core.
Whilst the latter is great for finite sets, I'm looking for a package that 
implements uncountable sets i.e. the set of real numbers less than 44.
This can be defined using a predicate i.e. an element x belongs to this set 
if the predicate (< x 44) evaluated to true. Unions and intersections
of such sets correspond to logical ands and ors of the corresponding 
predicates. 

I could have a go at implementing this myself, but I am wondering if there 
is an existing tested library for dealing with such objects.

Thanks!

-- 
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.


ANN: ClojureScript 1.9.456, Externs Inference & Comprehensive JS Modules Support

2017-01-27 Thread David Nolen
ClojureScript, the Clojure compiler that emits JavaScript source code.

README and source code: https://github.com/clojure/clojurescript

Leiningen dependency information:

[org.clojure/clojurescript "1.9.456"]

This is a significant feature release.

The first new feature is externs inference. This should greatly ease
the integration of 3rd party JavaScript libraries incompatible
with Google Closure advanced compilation. By treating the externs
problem as a type-hinting one - we can automatically generate the
required externs for you. This new feature should be considered
of alpha quality and subject to change. Still, feedback is greatly
appreciated to help us better understand how to best deliver this
enhancement.

For details please look at the new guide:
https://clojurescript.org/guides/externs

The second new feature is much more comprehensive support for
JavaScript modules. We now have a good story for integrating the
various kinds of JavaScript modules into a ClojureScript project
build without resorting to JavaScript build tools. This feature
even includes the consumption of modules directly from NPM.

There are far too many details to cover in this release announcement
so once again refer to the guide:
https://clojurescript.org/guides/javascript-modules

Like externs inference this feature is alpha and subject to change.
Again feedback is critical to guiding this enhancement in the
right direction.

I'd like to especially call out Maria Geller's Google Summer of Code work
here around these two major features. This work began almost 2 years
and it's nice to see the long term planning come together so well.

There are quite a few performancement enhancements in this release
related to compiler startup time as well as numerous fixes from
many members of the community.

Congratulations to everyone involved and happy hacking!

## 1.9.456

### Enhancements
* Enhanced JavaScript module support
* Support Node resolution for CommonJS modules
* Externs inference
* Performance enhancements
* CLJS-1835: REPL load special fn
* CLJS-1194: Support for `data_readers.cljc`

### Changes
* expose :closure-module-roots option
* bump Closure Compiler dep
* Under Node.js don't need require entries in the goog.addDependency calls
in cljs_deps.js
* do not throw on circular dependencies between Google Closure JS libs
* str macro should call str/1 function directly, added str benchmark
* CLJS-1718: Foreign lib files should be placed in a relative location
* CLJS-1858: Should allow `:cache-analysis true` and `cache-analysis-format
nil`
* CLJS-1616: Self-host: improve documentation for compile-str
* CLJS-1643: Emit more informative error when emitting a type which has no
emit multimethod case
* CLJS-1816: Basic timing info in verbose output
* add support for emitting inferred externs file
* add cljs.analyzer/analyze-form-seq
* CLJS-1666: Flag to optionally disable transit analysis cache encoding
* Provide more descriptive error message when invalid libspec detected
* CLJS-1768: cljs.spec perf tweaks
* CLJS-1842: Remove analyzer `:merge` hack for REPLs
* CLJS-1839: Relax the constraint that `new` and dot forms must be passed a
symbol
* default to :ecmascript3 if :language-out not specified for :es6 module
* respect :language-out when processing ES6 modules
* default to :ecmascript3 if :language-out not specified for :es6 module
* inline some?

### Fixes
* CLJS-1911: Need to bind Node.js require
* CLJS-1909: Self-host: circular dependency when requiring cljs.reader
* CLJS-1906: Self-host: script/test-self-parity fails
* CLJS-1903: Remove anonymous vars from dir and apropos output
* CLJS-1897: Too many externs generated
* CLJS-1895: Externs inference needs to support user supplied externs
* CLJS-1873: Self-host: Unit tests fail owing to test.check dep
* CLJS-1874: Self-host: :fn-var true for macros
* CLJS-1877: :foreign-libs entries should be allowed to specify directories
along with individual files
* CLJS-1890: s/form for s/nilable in cljs.spec does not match clojure.spec
* CLJS-1811: Can't compose cljs.spec.test.instrument (or
cljs.spec.test.check) with cljs.spec.test.enumerate-namespace
* CLJS-1894: Unnecessary analysis of core.cljs on first compile
* CLJS-1893: Unnecessary analysis of core.cljs
* CLJS-1892: Dependencies in JARs are analyzed every time even if an
analysis cache file exists
* CLJS-1887: add :watch-error-fn option
* CLJS-1883 Foreign libs can't be found on Node.js
* CLJS-1882 Fix constant table sort order when using :modules
* CLJS-1853: var metadata in compiled output
* CLJS-1878: prefer `some?` over `(not (nil? %))` in analyzer
* CLJS-1880: missing ^boolean on some hasNext calls
* CLJS-1875 Difference in seqable? between CLJ & CLJS
* CLJS-1829: get does not return not-found on negative indexes
* cljs.spec.test/unstrument shouldn't return the names of vars that weren't
instrumented in the first place. Fixes CLJS-1812
* CLJS-1786: Add knob for controlling printing of namespaced maps
* CLJS-1836: nth doesn't 

Re: Pattern matching Vs destructuring?

2017-01-27 Thread Francis Avila
There are two different concerns in what people refer to as "pattern 
matching": binding and flow-control. Destructuring only addresses binding. 
Pattern matching emphasizes flow control, and some binding features 
typically come along for free with whatever syntax it uses. (But you could 
in principle have flow control without binding.)

On Friday, January 27, 2017 at 1:04:04 AM UTC-6, Didier wrote:
>
> Some languages have pattern matching, and Clojure is said to not have it 
> (without a library), but it does have destructuring.
>
> It seems to me that destructuring is the same as pattern matching, except 
> that it can only be used inside function arguments, where as pattern 
> matching can also be used when assigning a value or inside case switch 
> statements.
>
> Is that truly the only difference? And if so, why the different 
> terminology?
>
>

-- 
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.