Freigeben über


Fabulous Adventures In Coding

Eric Lippert's Erstwhile Blog

Practice thinking like a compiler tester, part two

Reader RichM found the same solution to the puzzle I posed yesterday that I did: public class V :...

Author: Eric Lippert Date: 04/11/2007

Practice thinking like a compiler tester

I don’t know why but for some reason I find this little recursive algorithm I ran across in...

Author: Eric Lippert Date: 04/10/2007

Lambda Expressions vs. Anonymous Methods, Part Five

Last time I demonstrated that the compiler could have to do an exponential number of bindings in...

Author: Eric Lippert Date: 03/28/2007

Free Food! And Meet The Compiler Guy! And Win an XBOX 360!

FYI, I will be live and in person available for questions about C# 3.0, working at Microsoft,...

Author: Eric Lippert Date: 01/30/2007

Lambda Expressions vs. Anonymous Methods, Part Three

Last time I said that I would describe a sneaky trick whereby you can get variable type inference...

Author: Eric Lippert Date: 01/12/2007

Lambda Expressions vs. Anonymous Methods, Part One

As you know by now if you've been reading this blog for a while, I am incredibly excited about...

Author: Eric Lippert Date: 01/10/2007

The horror! The horror!

Jeff "Coding Horror" Atwood has many nice things to say about my blog and one not so nice thing....

Author: Eric Lippert Date: 01/08/2007

Every Number Is Special In Its Own Special Way

I got a question recently about where in the .NET framework the "special numbers" were defined. The...

Author: Eric Lippert Date: 11/28/2006

A Face Made For Email, Part Three

Yes, it has happened again. This time, our fabulous C# Community Program Manager Charlie Calvert was...

Author: Eric Lippert Date: 11/17/2006

How do I mitigate a SQL injection vuln?

Joel points out today that SQL injection vulnerabilities are common and bad, bad, bad. He does a...

Author: Eric Lippert Date: 11/01/2006

"Boolean or" or "boolean or"?

I was writing the text for some new error messages for the expression tree library the other day....

Author: Eric Lippert Date: 10/31/2006

Do Not Call IsBadFooPtr, Indeed

Here’s a story that I said a long time ago that I was going to tell you all, and then promptly...

Author: Eric Lippert Date: 09/27/2006

Why does a recursive lambda cause a definite assignment error?

Hey fabulous readers, sorry for not much blogging lately. Between implementing LINQ and making plans...

Author: Eric Lippert Date: 08/18/2006

Type inference woes, part four

Last time in this series I discussed how we are probably going to identify a "best" type from a set...

Author: Eric Lippert Date: 07/18/2006

What Are The Semantics Of Multiple Implicitly Typed Declarations? Part Two

Many thanks for all your input in my informal poll yesterday. The results were similar to other...

Author: Eric Lippert Date: 06/27/2006

What Are The Semantics Of Multiple Implicitly Typed Declarations? Part One

In my earlier series on inferring a unique "best" type from a set of expressions I mentioned that...

Author: Eric Lippert Date: 06/26/2006

Standard Generic Delegate Types, Part Two

Last time I asked whether there were examples of delegate types which could be declared with the...

Author: Eric Lippert Date: 06/23/2006

Standard Generic Delegate Types

Hey all, I'm back from my vacation. Two weeks of reading, sailing, kayaking and visiting with old...

Author: Eric Lippert Date: 06/21/2006

Type inference woes, part three

There were a lot of good comments and questions posted in the last two entries which deserve...

Author: Eric Lippert Date: 05/30/2006

Type inference woes, part two

So what's the big deal anyway? The difference between the spec and the implementation is subtle,...

Author: Eric Lippert Date: 05/26/2006

Type inference woes, part one

The C# compiler has a subtle violation of the specification which raises an interesting question for...

Author: Eric Lippert Date: 05/24/2006

Using undefined variables in JScript

I got a question the other day pointing out that in JScript, it is legal to assign a value to an...

Author: Eric Lippert Date: 05/04/2006

Visual Studio Tools For Office: Using Visual Basic 2005 with Excel, Work, Outlook and InfoPath

Eric Carter and I are excited to announce that the Visual Basic edition of our book about Visual...

Author: Eric Lippert Date: 05/01/2006

Writing Code Isn't Rocket Science (It's Worse Than That)

Today, an old joke: Q: What do rocket scientists say when they want to describe a portion of their...

Author: Eric Lippert Date: 04/10/2006

Odious ambiguous overloads, part two

There were a number of ideas in the comments for what we should do about the unfortunate situation I...

Author: Eric Lippert Date: 04/06/2006

Odious ambiguous overloads, part one

As you might have gathered, a lot of the decisions we have to make day-to-day here involve potential...

Author: Eric Lippert Date: 04/05/2006

Delegates, Lambdas, Type Inference and Long Playing Records

Today is my 33 1/3rd birthday! I'm one third of the way through my first century. I feel like I...

Author: Eric Lippert Date: 03/31/2006

The Root Of All Evil, Part One

People often quote Knuth's famous statement that premature optimization is the root of all evil....

Author: Eric Lippert Date: 03/28/2006

Back in the saddle

Hey everyone, I'm back. Sorry for the two-month absence there. We've been absolutely INSANELY busy...

Author: Eric Lippert Date: 03/28/2006

Regular Expressions From Scratch, Part Eleven: Eliminating Multi-Symbol Rules

The story so far: we have deterministic and nondeterministic finite automata. DFAs follow a rigid,...

Author: Eric Lippert Date: 12/22/2005

Regular Expressions From Scratch, Part Ten: Magic!

Let's recap the story so far. Starting only with basic set theory, sequences, symbols and numbers,...

Author: Eric Lippert Date: 12/19/2005

Regular Expressions From Scratch, Part Nine: A Dream of a Machine

I want to come up with the simplest possible device that can identify whether a given string is a...

Author: Eric Lippert Date: 12/15/2005

Regular Expressions From Scratch, Part Eight: The Diagonal Argument

As we know, each regular expression is associated with a language by our function L. We also...

Author: Eric Lippert Date: 12/12/2005

Regular Expressions From Scratch, Part Seven: Listing All Members Of A Language In Order

Regular languages are by definition those languages which can be described by a regular expression....

Author: Eric Lippert Date: 12/08/2005

Regular Expressions From Scratch, Part Six: The Insanely Clever Bit

Let's start with an easy one today, because things are about to get a little tricky. Definition 10:...

Author: Eric Lippert Date: 12/05/2005

Regular Expressions From Scratch, Part Five: The Regular Expression Language

Now things start to get really weird. Definition 9: Take any alphabet S. The regular expression...

Author: Eric Lippert Date: 12/01/2005

Regular Expressions From Scratch, Part Four: The Kleene Closure of a Language

Languages are sets, so we can take any two languages (over the same alphabet) and take their union...

Author: Eric Lippert Date: 11/28/2005

Regular Expressions From Scratch, Part Three: Concatenation

You probably intuitively understood concatenation already, but let me define it anyway. Definition...

Author: Eric Lippert Date: 11/25/2005

Regular Expressions From Scratch, Part Two: Some Examples of Languages

Let's look at some sample languages to get a sense of just how flexible languages can be. For...

Author: Eric Lippert Date: 11/22/2005

Why Can't I Access A Protected Member From A Derived Class?

A question I got recently was about access to protected methods from a derived class. Clearly that's...

Author: Eric Lippert Date: 11/09/2005

Five-Dollar Words for Programmers, Part Two: Orthogonal

In geometry, "orthogonal" basically means the same thing as "perpendicular", or "at right angles"....

Author: Eric Lippert Date: 10/28/2005

Five-Dollar Words for Programmers, Part One: Idempotence

Programmers, particularly those with a mathematical background, often use words from mathematics...

Author: Eric Lippert Date: 10/26/2005

<Previous Next>