If am creating accessors to access structures, how should they be
named?

(defstruct employer :employee)
(defstruct employee :employer)
(def employee-name (accessor employee :employer))
(def employer-name (accessor employer :employee))

In a situation where one struct is pointing to the other, is that the
best accessor name?  Since structs are lower case do they clash with
variables and accessors ever?  I could easily see myself doing

(def employee (...))

Here, I assume it won't have any problems, but does it become
problematic later?  Especially since it seems that accessors can be in
either order.

(defstruct vert :id :edgeId)
(defstruct edge :id :vertId)
(def vert (accessor edge :vert))
(def edge (accessor vert :edge))

I know this could be easily resolved by changing the accessor
definitions to get-vert and get-edge, but I was hoping it wouldn't be
necessary.  Once again, I'm bound to have a variable somewhere in my
code called vert and edge.  Java and Scala don't seem to have this
problem.  Especially using Scala's builtin getter setter feature,
which has strick ordering like

edge.vert // returns the vert for this edge
vert.edge // returns the edge for this vert

Is there a better naming convention to follow?  get-vert and get-
edge?  Should structures ever be uppercase to distinguish them?  That
doesn't seem to be the lisp convention.  In these cases it seems the
struct name would
never be a problem, but it seems I'm stuck between making a convenient
accessor name and easily stomping over if making a convenient variable
name.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

To unsubscribe from this group, send email to 
clojure+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Reply via email to