Sometimes I miss the named arguments feature in Python, for example:
def slope(p1=(0,0), p2=(1,1))
return (float(p2[1] - p1[1])) / (p2[0] - p1[0])
=> slope((1,2), (4,5))
=> slope(p2=(2, 1))
The equivalent in clojure can be done using destructuring:
(defn slope
[& {:keys [p1 p2] :or {p1 [0 0] p2 [1 1]}}]
(float (/ (- p2 1) (p1 1))
(- p2 0) (p1 0)))
=> (slope :p1 [1 2] :p2 [3 4])
=> (slope :p2 [3 4])
=> (slope)
Share this post
Twitter
Google+
Facebook
Reddit
LinkedIn
StumbleUpon
Email