Chris Smith's completely unique view

Algorithms, functional programming, CLR 4.0, and of course, F#!

Browse by Tags

Tagged Content List
  • Blog Post: DAWG-fight, Optimizing text search in F# II

    Some of you may have seen Dr. Brian McNamara’s post refuting my credentials as an evil genius. Lies! All lies propagated by the liberal media! Evidently, he thinks that his superior implementation of a trie , which is faster and uses much less memory, is better than mine. If being an evil genius means...
  • Blog Post: F# CTP Update!

    Hot on the heels of the Visual Studio 2010 Release Candidate comes the February, 2010 F# CTP . There haven’t been too many changes since the last release, mostly bug fixes and getting the libraries in a consistent state. You can find more information on Don’s blog .
  • Blog Post: Trie-ing to optimize text search in F#

    Any evil genius knows that if you want to stay on top you need to exercise your mind. Most evil geniuses stay strong by lifting weights with their telekinetic abilities , however I prefer video games. PopCap.com’s Bookworm is one mental exercise I am particularly fond of. Bookworm is simple. You have...
  • Blog Post: The Halting Problem and the Church-Turing Thesis

    Two weeks ago at PDC Dustin “former blogger” Campbell and I sat down with Keith and Woody to record an episode of Deep Fried Bytes . The show hasn’t been posted yet, but I’m sure it will turn out great. We talked about all sorts of things, from me shamelessly promoting my book to Silverlight 4.0 to the...
  • Blog Post: Source Code for Programming F#

    I've gotten a few requests recently for the source code of the examples in Programming F# . I've attached them as a series of F# Script files. In the ZIP file you'll find a few gems such as: A 'state' computation expression Examples of F# Asynchronous Workflows and the Parallel Extensions to...
  • Blog Post: Awesome F# - Decision Trees – Part II

    In my previous post I went over the theory behind the ID3 algorithm . Now that we got all that painful math out of the way, let’s write some code! Here is an implementation of the algorithm in F#. (It is also attached to this blog post, download it via the link at the bottom.) open System type Record...
  • Blog Post: Upcoming F# Talks

    Recently legendary Cambridge research Don Syme presented an Introduction to F# at JAOO Aarhus in Denmark. From what I’ve heard the talk went really well, and the slide deck is a great way to pick up the F# language (or give an intro-level presentation yourself). I figured I’d point out some other upcoming...
  • Blog Post: Grotesque F# Code - I

    Recently a friend came to me in a mild panic about some massive refactoring he needed to do to an F# code base. The code he had was very complicated and maintenance was a pain. After only a few seconds scanning through the code I certainly could see that the code was more complicated than it needed to...
  • Blog Post: F# for Architects: Hitting the sweet spot

    When I was at DevLink last week I gave a talk designed to specifically identify why and when you should use F#. I was going to post the slides, but then I realized that they are in the form of a ‘presentation deck’ rather than a ‘reading deck’. So rather than having a few vague slogans and images in...
  • Blog Post: F# Scripting Zen – Bulk Updating Testcases

    As the F# team is busy working to finish up Visual Studio 2010 , one task left to complete is to localize the compiler, so that on a Japanese machine the error messages will be in Japanese. While I’m sure a few Ugly American Programmers might question the value of localized error messages, imagine...
  • Blog Post: F# Community Roundup

    There’s plenty going on in the F# community these days, I figured I’d provide a shameless plug for few blog posts or videos I especially liked. Toronto F# Study Group If you live in Soviet Canuckistan and are in the Toronto area, Justin Lee is hosting an F# Study Group at the Dark Horse Cafe in Spadina...
  • Blog Post: Idiomatic F# – Functional vs. Imperative

    Our story begins with this guy, Stuart Bowers, sipping functional programming cool aid out of a kickass mug from Cafe Press . Stuart is a developer on Amalga and full-time F# developer at Microsoft. The world is at a loss because this man does not blog... Anyways, he has been reviewing chapters some...
  • Blog Post: F# and the PFX Round 1

    I’m currently working on a chapter for Programming F# titled Asynchronous and Parallel Programming which should turn out pretty well. Anyways, I have an example that was too awesome not to blog. In this post I’ll show how to use the Parallel Extensions to the .NET Framework for finding the shortest...
  • Blog Post: Deep Fried F#

    Episode 24: Chatting about F# with Chris Smith and Dustin Campbell “Get your code on!” Being the international media sensation that I am, back at PDC Dustin Campbell and I recorded a podcast for Deep Fried Bytes . The podcast turned out awesome. Well, after I figured out how to talk into the mic. Some...
  • Blog Post: Speech Recognition is gun and easy!

    Evidently Microsoft ninjaed a new assembly into the .NET framework with the 3.0 release called System.Speech.dll. If adding speech recognition or speech synthesis to your applications sounds like fun, read on. Step 1: Train your computer The first step for meaningful speech recognition is to tell your...
  • Blog Post: F# No Longer Vaporware

    REDMOND, WA - Sadly, after nearly four years of stringing developers along with Microsoft's longest touted non-product, F# was accidentally checked into the Visual Studio 2010 source tree Microsoft sources report. This mistake killed what would have been one of Microsoft's most popular vaporware project...
  • Blog Post: F# Zen - ROT13

    Below is a primitive implementation of ROT13 / Ceasar Cipher in F#. In short it is a simple encryption algorithm that works by 'shifting' each letter 13 places. So an 'a' becomes an 'n', a 'b' becomes an 'o', and so on. To decrypt the text you simply move 13 places in reverse. We can do this in F# easily...
  • Blog Post: F# Elevator Pitch

    At the PDC I spent about eight hours a day for a full week answering the same question again and again: “What is F# and why should I use it.” While I would love to give a long and nuanced answer to this, in order to achieve a high throughput you need to resort to using the Elevator Pitch style. The...
  • Blog Post: Due out Next Year – Programming F# by Chris Smith

    I’d like to announce that for the past few months I’ve been secretly working on a book for O’Reilly titled Programming F# . My aim is to provide the one-stop-shop for learning the breadth of the F# language. A special thanks goes out to Nate LaMartina, a friend of mine at Mythic Entertainment for putting...
  • Blog Post: MSBuild tasks for Lex and Yacc

    While I am thrilled about all the new features we've put into the F# CTP, perhaps the thing I'm most excited about are the MSBuild tasks for Lex and Yacc. You heard that right. If you want to use fslex.exe of fsyacc.exe as part of your project, you can now integrate them into your project via MSBuild...
  • Blog Post: Simple F# Game using WPF

    With the F# CTP out the door, let’s take a look at what it can do. Ryan Cavanaugh, not the famous Banjo Player , the one on the VS Pro Tools Team, helped me put together an artillery game called BurnedLand. (Kudos if you can catch the subtle reference.) To play the game you adjust the Power, Angle...
  • Blog Post: CTP Awesomeness – Goto Definition

    If you’ve used Visual Studio for a few years you’ve probably memorized all the shortcuts and methods for navigating source code. For example, if some XML looks unruly just press CTRL+K+D to automatically format the document. (If you’re interested in learning more Visual Studio tips, Sara Ford's blog...
  • Blog Post: FSharpp to FSProj Converter

    Wow, what a busy week! The F# CTP is out the door, and it's already making reverberations around the blogospphere: Don's Announcement Units of Measure in F#: Part One, Introducing Units - HOTNESS Downloading stock prices in F# - Part I - Data modeling Welcome to the F# CTP project system: project templates...
  • Blog Post: Understanding Tail Recursion

    You may have heard of Tail Recursion before, in fact, you may have even written tail recursive functions before without even knowing it. Even so, why should you care? Safety. Functional programming relies on recursive functions heavily since imperative looping structures are frowned upon. However, recursion...
  • Blog Post: Mastering F# Lists

    Minor update: spelling Lists represent the backbone of functional programming and in order to be an effective F# programmer you must truly master list processing. Fortunately lists are simple and straight forward, so let’s begin. Mastering F# Lists There are several things which distinguish...
Page 1 of 3 (54 items) 123