swannodette / lt-cljs-tutorial

A ClojureScript Programming Language Tutorial for Light Table Users
MIT License
863 stars 123 forks source link

Some obscurities #47

Open p-b-west opened 10 years ago

p-b-west commented 10 years ago

This snippet on exceptions is obscure. How, exactly, does :default work as a catch-all here, and does it have wider application? I know it is used in multi-methods, but have not found any other references to it.

;; JavaScript unfortunately allows you to throw anything. You can handle
;; this in ClojureScript with the following.

(try
  (throw (js/Error. "Oops"))
  (catch :default e
    e))

I have had to track down the following syntax once before, and I think it deserves more explanation.

;; We can use property access with `set!` to change the fill color of a
;; a canvas rendering context.

(set! (.-fillColor ctxt) "#ffffff")

I'm talking about the .-fillColor.

p-b-west commented 10 years ago

I found the discussion of property access syntax near the end of the tutorial. Just a note referring readers to that discussion would do the trick, I think.