Okay, I've made some changes to my proposed str-utils. I've also got a few answers to some of the issues Stuart raised.
New Changes 1. re-strip is now lazy I re-wrote this method to used the re-partition method in str-utils. This enables the laziness, and helped be consolidate my Java interactions into fewer functions. 2. re-strip options changed I removed the ability to pass a :limit option. I replaced it with :offset and :length options. Seemed to make the function more flexible :) 3. created nearby function The nearby function returns a lazy sequence of strings "nearby" the input string. It's inspired by the Norvig spellchecker example. I'd like to propose adding this method to the library, because I'm interested in what uses creative people will have for it. 4. Added README.html This file contains usage on every method in my proposed str-utils Response to Stuart's Issues You've raised some good points with my proposal. However, I think there is some hidden value in including the functions in the library. 1. Repeated The main reason I have for including the repeated methods (trim,strip,downcase,upcase) in the str-utils library is program flow. Take the following two examples (map downcase a-list) (map #(. % toLowerCase) a-list) It's my purely subjective opinion that the first method reads much nicer. I'm also a web developer, so I do a lot of string processing. I have a subjective preference for functions that make code more concise, and my code will read a little shorter with the downcase function in it. I guess my main argument is that a more concise way of stating the same thing does add value. For example, the jQuery selector can be called using the function jQuery(). However, it is always written $() to save time. In my view, the $() shortcut does add value. This is why I think you should consider adding my repeated methods to str- utils. 2. Methods in Apache Commons The second issue you raise is with methods like capitalize, that are available in Apache Commons. First of all, the exact reasoning I went through above could easily be applied to the following s-exp (map capitalize a-list) However, I believe there is an additional reason for including these methods in the library. By requiring Apache Commons, you've increased the number of jars I need to maintain. Granted, a lot of people are used to using the commons. It is still one more thing that requires maintenance, though. By making capitalize (and others) part of contrib, it reduces the amount of work I have to do to get this functionality. In conclusion, I'd recommend making the str-utils one of the slickest libraries in Clojure. As developers, we know how strong string manipulation makes writing code easier. If Clojure has incredible string support, developers will be more impressed. Let's go out of our way to make string manipulation in Clojure easier than in any other language. Besides, once we get a kick-ass string library working, we can then abstract the routines to work on any pattern of symbols, and give our macro writers a boost. Sean On Mar 24, 2:22 pm, Stuart Sierra <the.stuart.sie...@gmail.com> wrote: > On Mar 23, 9:46 pm, Sean <francoisdev...@gmail.com> wrote: > > >http://github.com/francoisdevlin/clojure-str-utils-proposal/tree/master > > > I'm not sure what the directory structure should be for everything > > still. Perhaps somebody can point out how it should be done. > > > I'll put the original post in the README > > > Long story short: multi-methods could be awesome > > Hi Sean, > > This is interesting. One quick comment, though: the trim, strip, > upcase, and downcase functions don't add anything to the original Java > methods. Rich and others have warned against adding wrapper functions > just to hide Java. > > Some of these functions, like capitalize, are available in Apache > Commons Lang, the "StringUtils" class. > > -Stuart Sierra --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---