Browse by Tags
All Tags »
C# 3.0 (
RSS)
External or internal? C# introduced the concept of iterators in C# 2.0 but it's a less-known fact that there are two sorts of iterators. The ones provided in C# are so-called external iterators . The distinction lies in the party that controls the...
A few days ago I got an interesting question from one of my blog readers. During my blogging battle with pattern matching , I mentioned the concept of compiling expression tree lamdas on the fly to IL-code. This is actually one of the core parts of the...
Introduction Recently I delivered a session on Custom LINQ Providers - LINQ to Anything at the TechDays conferences in Ghent and Lisboa. The core of the session focuses on expression trees and translating those at runtime into a query language like CAML...
It's been a while since I continued my series on a functional pattern matcher in C# . I finally found some time to extract the simplified pattern matching code from the bigger project I'm working on and cook up a downloadable documented sample...
In the last handful of posts in this series we've been looking at ways to match a whole set of patterns, including: Constants Objects Lists and arrays Dictionaries There's not that much left to apply (meaningful) matches for (feel free to think...
In our last encounter on the pattern matching mission we covered techniques to match T[] and List<T>. Today we cover another type that's being use a lot: dictionaries (the generic brothers of Hashtable which you could match too, exercise )....
Monday morning: The Return of The Pattern Matcher. After an awesome weekend (well, a Saturday at least) plenty of sun here in Seattle, we'll dive into even more pattern matching fun. This time around we'll investigate ways to match collections...
Remark: Some readers have asked me for the sources of all this magic. Since this series is based on an extraction from a bigger project and I'm composing the decoupled (and slightly simplified) pattern matcher as I'm writing these blog posts,...
Last time around in this series we won the battle of performance, going all the way from an interpreter-driven pattern matcher to a fully on-the-fly compiled one, with great results almost reaching the performance of a manual implementation. However,...
Welcome back beloved pattern matchers! In our last encounter we moved from closed to open pattern match objects in order to allow for reuse, improving the performance of our pattern matcher quite a bit. But we're not done yet: today we'll build...
More Posts
Next page »