More as a note to future Clojure doc'ers than anything else: It seems that noobies (including myself) get bitten by the lazy versus immediate evaluation functions all the time (e.g. for versus doseq/ doall). If this problem isn't solved through naming conventions (probably way too tedious to be valuable), then I suggest it be solved through doc tagging. Of course, then an IDE could color lazy and immediate forms differently.
On Jan 20, 1:17 pm, lpetit <laurent.pe...@gmail.com> wrote: > Hello, > > As modest as this could be in the quest of a formal categorization, I > find the integrated string pattern search integrated into clojuredev > really useful, so I can't resist to do this shameless plug. > > You can see it in action, with a search on the word "string", either > by searching the word in symbol names or also in symbols functions, at > this link > :http://code.google.com/p/clojure-dev/wiki/ScreenShots#Namespace_Brows... > > What I think makes it really usefull is that it's fast, compared to > going to your browser, launching the API page of the clojure website, > and searching for the word string through the entire page. > And you have the args and doc string as a tooltip when hovering over a > symbol. > > Of course, if some sort of categorization is done on symbols, maybe > via a project that could make a pass on existing symbols and enhance > their metadata with lists of Strings, this would be an enhancement > interesting to incorporate into an IDE (or even a command-line REPL), > for sure ! > > See you, > > -- > Laurent > > On 20 jan, 21:42, Mark Volkmann <r.mark.volkm...@gmail.com> wrote: > > > On Tue, Jan 20, 2009 at 10:09 AM, MarkAddleman > > > <mark_addle...@bigfoot.com> wrote: > > > > I'm a long time Java programmer and, before that, a Smalltalker. One > > > of the major biggest challenges I face when picking up a new language > > > is getting a working understanding of its libraries. I believe that > > > standardizing on a doc format was a pretty important driver for Java's > > > success. > > > > As I see it, Java has three natural forms that aid a newbie learning > > > its libraries: Packages, hierarchies and type declarations. Packages > > > and hierarchies give newbies a few good ways of browsing the libraries > > > to gain familiarity and, much more importantly, a way of organizing > > > all those bits of information in our heads. Type declarations serve > > > as a good way of documenting the parameters for methods (e.g. > > > parameter one must respond to well-defined set of messages). > > > > I'm willing to forgo the documentation benefits of type declarations > > > to get back to dynamic typing that I enjoyed with Smalltalk but I'm > > > too old to try to read through, memorize and create memes for a new > > > library as rich as Clojure's. At the same time, I think there are > > > enough limitations to JavaDoc to warrant spending a little time trying > > > to come up with a better alternative. > > > > I haven't thought my proposal through very well, but here's the idea: > > > a multidimensional relational, categorization system similar to the > > > tagging system seen on blogs or the WikiBadge (http://c2.com/cgi/wiki? > > > WikiBadge) system. The idea goes something like this: Clojure > > > functions could be tagged with any user created tag. Tags can be > > > related to one another through named relations to provide context. > > > For example: > > > > Tags: "java interop" "primitive" "array function" > > > Relations: "is a" > > > > A little prolog-ese: > > > is_a(primitive, java_interop) > > > is_a(array_function, primitive) > > > array_function(areduce) > > > > With the appropriate logic, a search for "is_a(?, java_interop)" would > > > yield "areduce" > > > > I suspect that by applying tags to function arguments and with careful > > > definition of relations, a Clojure IDE could perform similarly fancy > > > suggestions and refactorings as modern Java IDEs. > > > > I'm throwing this out to the group in an effort to jump start some > > > real documentation efforts. It would be a tremendous boon to > > > Clojure's up-take, I think. > > > I completely agree that some form of categorization of core Clojure > > functions would be very helpful. For example, which of the hundreds of > > core functions perform some operation on a string? I started trying to > > categorize them for my own benefit. See the first table > > athttp://www.ociweb.com/mark/programming/Clojure.html. This isn't yet > > complete. > > > Stuart H., I think something like this would make a great appendix in your > > book! > > > -- > > R. Mark Volkmann > > Object Computing, Inc. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---