
Brandon S. Allbery KF8NH wrote:
On Aug 23, 2009, at 20:44 , Michael Mossey wrote:
Although I can use libraries like Parsec, I don't really understand what a combinator is, theoretically. There is an article here
Example: in Parsec, "many" is a combinator which takes a parser as an argument and produces a parser that matches multiple successive copies of whatever the argument matches. It doesn't need to know anything about its argument except that it's a parser. This kind of function lets you build up complex but general parsers from smaller pieces.
What makes it a "combinator" and not a general function? The fact that it takes only a function (parser) as input (no data) and produces only a function? Is any function that takes only functions and produces a function called a combinator? Thanks, Mike