Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2016
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. ; Some 2x2 array
  2. (def data) (np.array [[0 1] [2 3]])
  3.  
  4. ; Ugly as hell
  5. (def row-before (get data (, (slice 0 1))))
  6. (def col-before (get data (, (slice None) (slice 0 1))))
  7.  
  8. ; The solution
  9. (defmacro get-slice [data &rest slices]
  10. (setv make-slice
  11. (fn [x]
  12. (cond
  13. [(= x []) `(slice None None)]
  14. [(coll? x) `(slice ~@x)]
  15. [True x])))
  16. `(get ~data (, ~@(list-comp (make-slice x) [x slices]))))
  17.  
  18. ; Heaven.
  19. (def row-after (get-slice data [0 1]))
  20. (def col-after (get-slice data [] [0 1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement