Add reference to related work by McIlroy?
Cool tool! It might be educational to include in the README mention of McIlroy's 2004 Functional Pearl "Enumerating the strings of regular languages" http://www.cs.dartmouth.edu/~doug/nfa.ps.gz
Thanks, I'll have a look when I get the time. To be honest I haven't looked at the research before getting started, though better late than never.
Thanks for a good read! I wish I had known about it when I first implemented
stutter.
A few thoughts:
-
I realize that
stutter's operators don't have the same priority as typical regex s; for instance, running the paper's regex examples through stutter yields different output sets (the elements are different, not just the ordering). I might need to look into that. -
It looks like stutter could be reimplemented easily using the first method described in the paper. I'll first try to write a conduit-based library for the length-ordered list operations. If that works, it should be possible to preserve the constant memory behavior.
-
Currently
stuttersupports more operators than those defined by theRexptype (stutteruses regex-like expressions). However it should still be possible to write a conduit-basedLOLlibrary in tagless final style and extend the types instutter. I planned to go in that direction anyway (#8) so might as well.
I'll reach out to Prof. McIlroy to see if he's fine with me putting up a conduit-based library of the set operations method on hackage. @FranklinChen your thoughts on this are very welcome.
I'm too busy at the moment to look into a comparison and consolidation of the techniques, but I'm glad you found the reference useful and will watch for developments :-).