I have to admit the first community solution for today’s exercise used the Zip and Skip higher order functions from LINQ, and it looked very nice. The exercise was to build up a string for the “for want of a nail the kingdom was lost” story with a list of subjects to iterate over. The story is sort of a medieval version of “Because a Little Bug Went Ka-choo“.

I did sneak and do a bit of extra work for the parser last night. I added the add/subtract, multiply/divide, and logical comparisons. Today I added NOT, AND, and OR. I also fixed value so you can have a parenthesized expression, and so it also recognizes function calls. I had to add a few things to the lexer and remember to put the keywords before the identifier check.