I am using keywords as constants in my clojure programs, but I am worried about misspelling them. For example, I am writing a game and I am using the keywords :north and :south to indicate objects that belong to the north player or the south player. With this, I can define how to create the pieces for the players:
(defn createPiece [id player] {:tag ::piece, :id id, :player player}) where player can take the values :north or :south. I have many other such constants in the program. I have been thinking of doing the following to catch misspellings: (def -north- :north) (def -south- :south) and then using these two definitions as follows: (def northPiece1 (createPiece 1 -north-)) rather than doing this: (def northPiece1 (createPiece 1 :north)) But, before I make these changes, I wondered if anyone else has run into this problem, and if it is worth it to consider an option to be able to declare the known constant keywords that will be used in the program and then treat the undeclared keywords as warnings? Another option would to be able to get a cross-reference of all keywords in the clj files within a folder (and subfolders) that shows where they are declared and used (like was done for Cobol programs in the 1970's). Thanks. --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---