CamelCase in Lisp
Example for versions
guile 1.8.5
This program shows how to use regular expressions from regex
module. First two commands load the necessary modules. The third one reads a line from input stream using read-line
command (rdelim
module) — unlike plain read
, it consumes characters till the end of line, not till the first whitespace — and converts it to lowercase.
The fourth command finds all matches for a regexp which describes a sequence of lowercase letters. Then it replaces each match with a return of a certain function applied to it (bound using lambda
). In this case the function is string-titlecase
which converts the first character of the string to uppercase.
Finally, the fifth command removes all non-letter characters from the string.
(use-modules (ice-9 regex))
(use-modules (ice-9 rdelim))
(define text (string-downcase (read-line)))
(define text (regexp-substitute/global #f "[a-z]+" text 'pre (lambda (m) (string-titlecase (match:substring m))) 'post))
(define text (regexp-substitute/global #f "[^a-zA-Z]+" text 'pre 'post))
(display text)
Comments
]]>blog comments powered by Disqus
]]>