On Sun, 2013-01-13 at 19:03 +0100, Marcel Möhring wrote:
> Currently I am using this approach but it feels rather clumsy:
>
> "Takes a screen and a pixel coordinate and returns
> a map of maps with pixel colors
> and adjusted pixel coordinates around the pixel.
> Directions are degree numbers from 0 to 315.
> in: screen (BufferedImage), x (Number), y (Number)
> out: map of maps ({direction (Number) {:color (Number) :x (Number)
> :y (Number)}})"
>
> Are there any better ways?
Using your argument names in prose is superior to saying the order,
because you can read the order from other places.
"Return a map of maps of pixel colors and coordinates on
BUFFERED-IMAGE surrounding (X, Y).
Directions are degree numbers from 0 to 315.
out: map of maps ({direction (Number) {:color (Number) :x (Number)
:y (Number)}})"
;; hey you have a lambda list saying where the args go
[buffered-image x y]
Also, here is a type annotation that documents your argument/return
types and registers them with Typed Clojure[1] for type checking:
(ann my-function [BufferedImage Number Number]
-> (Option (Seqable ...)))
Here is a version of that annotation that doesn't require Typed Clojure,
or anything at all really, although you don't get the type checking:
'(ann my-function [BufferedImage Number Number]
-> (Option (Seqable ...)))
[1] https://github.com/frenchy64/typed-clojure/wiki
--
Stephen Compall
^aCollection allSatisfy: [:each|aCondition]: less is better
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en