I am writing a parser which calls some functions dependent on some value.
I can implement this logic with simple switch like this:
switch(some_val)
I like the dictionary approach because it gives you the ability to possibly swap out your lambda expressions as the need arises. This is a great trick for a programmer to keep in their tool bag for cases involving programs using complex decision trees. It would be very unwieldy to modify your switch case blocks at run time and the best answer would end up involving lambdas anyway.
I once had a situation where I needed to create a switch statement dynamically. This method provided a lot more readable solution.