Welcome to MSDN Blogs Sign in | Join | Help

Browse by Tags

All Tags » C#   (RSS)

Strange Confluence: An Immutable Queue in F#

Jomo Fisher--Reading one of my favorite blogs this morning--Eric Lippert's Fabulous Adventures in Coding--I came across his article on implementing an immutable queue in C#. The funny thing is that just yesterday I wrote exactly the same structure in
Posted by Jomo Fisher | 1 Comments
Filed under: , , ,

The Least a C# Programmer Needs to Know about F# Part I--Implicit Types

Jomo Fisher--A few weeks ago, a fellow C# programmer asked me what the biggest differences between programming in C# and programming in F# are. Since then, I've been building a list of differences. My plan was to write a single article that discussed
Posted by Jomo Fisher | 6 Comments
Filed under: ,

Adventures in F#--Corecursion

Jomo Fisher--In a prior post I touched on recursion in F#. One of the comments was about mutually recursive functions. The example given was, let f1 a do print a f2 a let f2 a do print a f1 a f1 1 It turns out that this F# doesn't compile because F# scoping
Posted by Jomo Fisher | 4 Comments
Filed under: ,

Adventures in F#--Tail Recursion in Three Languages

Jomo Fisher—Here’s the F# I'm looking at today: #light let rec f n = do printf "%d\n" n f (n+1) f 1 This defines a recursive function 'f' that takes a value 'n' as a parameter. This function prints the value of n to the console and then calls itself with
Posted by Jomo Fisher | 12 Comments
Filed under: , , ,

Probing a Hidden .NET Runtime Performance Enhancement

Jomo Fisher--Matt Warren once told me that the runtime had a performance optimization involving calling methods through an interface. If you only had a small number of implementations of a particular interface method the runtime could optimize the overhead
Posted by Jomo Fisher | 8 Comments
Filed under: ,

LINQ to SQL Beta2 Performance Numbers and the Dynamic Compilation Pattern

Jomo Fisher--Rico Mariani has been posting about LINQ to SQL perfomance and has finally posted the performance numbers for Beta2: http://blogs.msdn.com/ricom/archive/2007/07/05/dlinq-linq-to-sql-performance-part-4.aspx One of the tricks Rico and Matt

Dealing with Linq’s Immutable Expression Trees

Jomo Fisher --I recently got a question via my blog that dovetailed nicely with something I’ve been working on: I know that expression trees are (or at least appear to be) immutable - which requires that you rewrite the entire tree if you want a tree
Posted by Jomo Fisher | 9 Comments
Attachment(s): ExprOpSample-Beta1.cs

Leaky Functions\Barrel of Bugs

Jomo Fisher--Pop quiz. Consider this function call in C#: a = MyFunction(b); What information is exchanged between the caller and the function? When is the information exchange done? It would be nice if the answer was: MyFunction takes value b and returns
Posted by Jomo Fisher | 14 Comments
Filed under: ,

Visitor Revisitted: LINQ, Function Composablity and Chain of Responsibility

Jomo Fisher— Last time , I wrote about constructing an inline visitor using new C# language features. It worked fine for what it did, but it completely falls down when you want to extend existing visitors that you’ve created. What if I wanted to modify

Inline Visitor Construction using LINQ

Jomo Fisher—My current job is in the C# team working on LINQ to SQL. Because of nature of programming languages, very few days go by that I don’t deal with syntax trees and the visitor pattern. Occasionally, it would be convenient to create a quick one-off
Posted by Jomo Fisher | 4 Comments
Filed under: ,

Fast Switching with LINQ

Jomo Fisher—I’ve run into a performance problem several times in my career that I’ve never found a truly satisfying answer for until now. The problem can be distilled down to this: Look up a value based on a string key. The set of strings is fixed and
Posted by Jomo Fisher | 33 Comments
Filed under: , ,

Attachment(s): SwitchCompiler.cs

C# 3.0 Expression Trees

IanG gives a brilliant explanation of C# 3.0 expression trees and how they enable efficient queries in DLinq: http://www.interact-sw.co.uk/iangblog/2005/09/30/expressiontrees This posting is provided "AS IS" with no warranties, and confers no rights.
Posted by Jomo Fisher | 2 Comments
Filed under: ,

Creating Custom Aggregate Functions in LINQ

Jomo Fisher —Adriane asks whether it’s possible to create your own aggregate function like Sum, Avg, Count, etc. For object queries, the answer is yes. First, let’s look at the actual implementation of Sum: public static int Sum( this IEnumerable <
Posted by Jomo Fisher | 4 Comments
Filed under: ,

Evolution of a C# Query—Step by step from C# 1.1 to LINQ

Jomo Fisher —The future of C# was recently unveiled at PDC. Object, XML and relational data will be integrated deeply into the language. This isn’t really a new direction for C#, it’s the next step down a path that C# has always been headed. To see this,
Posted by Jomo Fisher | 8 Comments
Filed under: ,

Code Quality Tip #3: Switch Gears, Eat your Dogfood

Jomo Fisher --Recently, the whole C# product unit took a week off from our regular work to do some App Building . We split up into teams and competed to see who could build the coolest application and find the most bugs in VS 2005. Given where we are
Posted by Jomo Fisher | 1 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker