File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 946946(defn- destructure-vector [V idx]
947947 (map-indexed
948948 (fn [i name]
949- (+def-defn name `(get ~idx ~i)))
949+ (+def-defn name `(nth ~idx ~i nil )))
950950 V))
951951
952952(defn- destructure-map [M idx]
959959 (let [root (gensym )]
960960 `(let [~root ~idx]
961961 ~@(condf x
962- vector? (destructure-vector x root)
963- list? (destructure-vector x root)
964962 map? (destructure-map x root)
963+ seqable? (destructure-vector x root)
965964 []))))
966965
967966(defn- +def-defn [x y]
Original file line number Diff line number Diff line change @@ -401,6 +401,30 @@ test::
401401 => : " $ what $ who"
402402 want : Hello World
403403
404+ - name : Range destructuring
405+ code: |
406+ a b c = : range()
407+ => : " $ a - $ b - $ c"
408+ want : ' 0 - 1 - 2'
409+
410+ - name : Short range destructuring
411+ code: |
412+ a b c = : range(2 )
413+ => : + [a b c]
414+ want : [0 , 1 , null]
415+
416+ - name : Range destructuring
417+ code: |
418+ a b c = : 1 2 3
419+ => : " $ a - $ b - $ c"
420+ want : ' 1 - 2 - 3'
421+
422+ - name : Auto grouping
423+ code: |
424+ a = : 1 2 3
425+ => : a
426+ want : [1 , 2 , 3 ]
427+
404428
405429# -------------------------------------------------------------------------------
406430done :
You can’t perform that action at this time.
0 commit comments