Re-find: discover functions with spec

Re-find: discover functions with spec

Re-find is an app and a library that lets you interactively discover Clojure functions based on example in- and output values or predicates. In this talk we will see how it works and how it is implemented, using clojure.spec as the driving force.

About the speaker: Michiel Borkent is a software developer and Clojurian. He can be found as @borkdude in various places on the web.

This presentation was given at Dutch Clojure Days 2019:


Michiel Borkent

April 06, 2019


  1. 2.
  2. 3.
  3. 4.
  4. 5.


  5. 6.
  6. 7.


  7. 8.
  8. 9.

    rationale for re-find • You are learning Clojure and don't

    know the names or even the existence of functions • You know a function exists, but forgot the order of arguments it takes
  9. 11.

    How does it work? • re-find searches within spec’ed functions

    • so it needs a collection of specs (speculative, but could be other specs for core or self-defined functions)
  10. 21.
  11. 22.

    Stack • Self-hosted CLJS • Low operational cost (just static

    HTML + JS) • No security risks (evaluation on server) • CodeMirror + parinfer layer • automatic paren matching, closing, highlighting • CLJC: re-find lib works in Clojure and (self-hosted) CLJS