[erlang-questions] *current* value?

Joel Reymont <>
Thu Oct 18 13:28:36 CEST 2007


The process dictionary could be used to simplify parsing, I think.

You could write this Haskell parser combinator

whileStatement = do
   reserved "While"
   e <- expr
   reserved "Begin"
   xs <- statements
   reserved "End"
   return $ While e (Compound xs)

like this

reserved("while"),
E = expr(),
reserved("begin"),
Xs = statements(),
reserved("end"),
{while, e, {compound, xs}}.

instead of the more verbose

{S1, ok} = reserved(S, "while"),
{S2, E} = expr(S1),
{S3, ok} = reserved(S2, "begin"),
{S4, Xs} = statements(S3),
{S5, ok} = reserved(S4, "end"),
{S5, {while, e, {compound, xs}}}.

This assumes that parsers throw exceptions upon failure.

What do you think?

--
http://wagerlabs.com








More information about the erlang-questions mailing list