|
|
|
|
|
by geokon
22 days ago
|
|
One thing to note that's maybe less obvious is that you can destructure some keys with the check and others without. This makes the function interface a bit self-documenting. At a glance you see that the username is required and other parts are maybe not. (defn my-function
[{:keys! [username]
:keys [firstname
lastname]}]
(do-stuff username
firstname
lastname))
A minor downside is that now it seems `nil` is even more overloaded b/c you can explicitly pass in a nil and give it a special meaning. This generally cascades in to messyness (better to have a special key like `:missing-username`).Feels like throwing an error on nil would have been better/simpler? But I'm sure there's an angle I've not considered |
|