Browse by Tags

All Tags » Functional programming (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...
Posted by bart | 7 comment(s)
This sounds like one of those posts that's about to draw scientifically sound conclusions. It isn't. The other day I had a discussion about various ways to express asynchronisity (or asynchronousness, whatever spell checker upsetting word you...
Posted by bart | 7 comment(s)
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...
In our journey to find the perfect match, we've arrived at an interpreter-based pattern matcher in the previous post . Although there are quite some limitations and the syntax isn't as sweet as we'd like it to be, it's fully functional...
More Posts Next page »