stutter icon indicating copy to clipboard operation
stutter copied to clipboard

Add reference to related work by McIlroy?

Open FranklinChen opened this issue 8 years ago • 3 comments

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

FranklinChen avatar May 01 '17 22:05 FranklinChen

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.

nmattia avatar May 02 '17 17:05 nmattia

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 stutter supports more operators than those defined by the Rexp type (stutter uses regex-like expressions). However it should still be possible to write a conduit-based LOL library in tagless final style and extend the types in stutter. 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.

nmattia avatar Jun 04 '17 11:06 nmattia

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 :-).

FranklinChen avatar Jun 05 '17 20:06 FranklinChen