Parsing has been a traditional workbench for showing the virtues of declarative programming. Both logic and functional programming claim the ability of writing parsers in a natural and concise way. We address here the task from a functionallogic perspective. By modeling parsers as non-deterministic functions we achieve a very natural manner of buildingparsers, which combines the nicest properties of the functional and logic approaches. In particular, we are able to easily de ne within our framework parsers in a style very close to the `monadic parsers' of functional programming, but using simpler concepts.