Hi,

I'm excited to announce Typed Clojure 1.1.1 which includes support for symbolic 
execution via a new type called a "symbolic closure".

I have written a guide on how to think about this new type and what it enables. 
In short, it can dramatically decrease the number of local annotations needed 
on anonymous functions.

https://github.com/typedclojure/typedclojure/tree/main/example-projects/symbolic-guide#symbolic-execution-in-typed-clojure

For example, instead of:

  (map (fn [x :- Int, y :- Int] (+ x y)) [1] [2])

You can now write:

  (map #(+ %1 %2) [1] [2])

It's also useful for transducers, though we're lacking much support for comp at 
the moment. For now instead of:

  (into [] (map (fn [x :- Int] (inc x)) [1 2])

You can simply write:

  (into [] (map #(inc %)) [1 2])

Functions can now whiz around and be checked after they have been defined:

  (let [f #(inc %)] (f 1))

Getting Started: https://github.com/typedclojure/typedclojure#usage-overview

Thanks,
Ambrose

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/Nl8JpX_EKxoUQw_RFYta14kMIZGQciOGxa2E0IUVFepdqWMsFp_krZ370C8XV1nzWqply2OqIgm5hrjQWZxhOJchII9PM8OOpCNzcSocLyg%3D%40ambrosebs.com.

Reply via email to