5 minutes ago, Mark Engelberg wrote: > As far as I can tell, pregexp functionality is a superset of regexp > functionality. Furthermore, the added functionality uses patterns > that are unlikely to occur by accident in normal regular > expressions. So is there any advantage to using regexp over > pregexp?
No, they're just two slightly different pattern languages. > Why is there a need for both to coexist in Racket? What would be > the downside to removing regexps from the language? Originally, there was concern over existing patterns that would break in hard-to-find ways. I guess that removing `regexp' and the `#rx' syntax could be used as a brute-force way that makes everyone upgrade code immediately, but such breakages tend to leave behind useful code with inactive maintainers. But I see another advantage for that now -- similar to having all three `fgrep', `grep', and `egrep' programs on a linux box. It's just easy to use the language that fits you more. In that spirit, I won't even mind some #lx"foo" -- literal regexp, same as (regexp (regexp-quote "foo")) possibly even #gx"foo" -- globbing regexp, where you only have "*", "?", and "[...]". but this one can get tricky, since it has many incompatible variants (eg, linux shells don't match a "." in the beginning unless it's explicitly in the pattern, and usually "*" doesn't match "/"). -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users