Just to follow up, I'm now using the following to pretty up Clojure code in Emacs
#+begin_src emacs-lisp
;; symbols for some overlong function names
(eval-after-load 'clojure-mode
'(font-lock-add-keywords
'clojure-mode
(mapcar
(lambda (pair)
`(,(car pair)
(0 (progn (compose-region
(match-beginning 0) (match-end 0)
,(cadr pair))
nil))))
`(("\\<fn\\>" ,(make-char 'greek-iso8859-7 107))
("\\<comp\\>" ?∘)
("\\<partial\\>" ?þ)
("\\<complement\\>" ?¬)))))
#+end_src
I think the results look quite nice, a small example is attached
Best -- Eric "Eric Schulte" <[email protected]> writes: > Hi Paul, > > Thanks for sharing this. It seems like the best compromise between the > desire to keep my code brief (at least to my eyes) without wanting to > introduce my own custom function names for global functions. > > If you don't mind I'd like to add this to my fork of the Emacs Starter > Kit (will credit you as author). > > Best -- Eric > > Paul Hobbs <[email protected]> writes: > >> Well, for those who use emacs, you could always make it *look* like it was >> pretty... For example: >> >> (eval-after-load 'clojure-mode >> '(font-lock-add-keywords >> 'clojure-mode `(("\\<fn\\>" >> (0 (progn (compose-region >> (match-beginning 0) (match-end 0) >> ,(make-char 'greek-iso8859-7 107)) ;; a lambda >> nil))) >> ("\\<comp\\>" >> (0 >> (progn (compose-region >> (match-beginning 0) (match-end 0) >> "∘ ") >> nil))) >> ("\\<partial\\>" >> (0 >> (progn (compose-region >> (match-beginning 0) (match-end 0) >> "𝒫 "))))))) >> >> On Mon, Nov 15, 2010 at 5:19 PM, Cyrus Harmon <[email protected]> wrote: >> >>> >>> I think the minimal character count for composition and partial functions >>> in haskell are some of the reasons that haskell code is so impenetrable to >>> non-haskell hackers. Feel free to rig up crazy unicode characters to any >>> identifier you want in your own code, just don't ask me to read or debug any >>> of it. >>> >>> On Nov 15, 2010, at 2:12 PM, Paul Hobbs wrote: >>> >>> Coming from Haskell, where composition and partial functions are cheap and >>> free in terms of character count, it is actually pretty discouraging to have >>> to spell it out in Clojure for the same effect. Some of the cases where you >>> "should" be using multiple expressions in Clojure would be perfectly clear >>> in Haskell as one expression... >>> >>> On Mon, Nov 15, 2010 at 11:37 AM, Sean Corfield >>> <[email protected]>wrote: >>> >>>> On Mon, Nov 15, 2010 at 10:26 AM, Alan <[email protected]> wrote: >>>> > The one that bugs me is complement - such a long name for a commonly- >>>> > useful function. I often wind up defining ! as an alias for >>>> > complement, but maybe others will think that is poor style. >>>> >>>> Possibly because bang functions indicate "Here be dragons" in terms of >>>> mutating state? e.g., set! >>>> >>>> Are you really using complement a lot? I guess I would define an alias >>>> for the complement-ed function or use not in expressions... >>>> -- >>>> Sean A Corfield -- (904) 302-SEAN >>>> Railo Technologies, Inc. -- http://getrailo.com/ >>>> An Architect's View -- http://corfield.org/ >>>> >>>> "If you're not annoying somebody, you're not really alive." >>>> -- Margaret Atwood >>>> >>>> -- >>>> 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]<clojure%[email protected]> >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> >>> >>> >>> -- >>> 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 >>> >>> >>> -- >>> 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]<clojure%[email protected]> >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>>
<<attachment: abbrev-function-names.png>>
-- 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
