/fsharp-tapl

Accompanying code for "Types and Programming Languages", ported to F#

Primary LanguageF#BSD 2-Clause "Simplified" LicenseBSD-2-Clause

Types and Programming Languages in F#

Code and Examples from Benjamin Pierce's "Types and Programming Languages".

Overview

"Types and Programming Languages" provides a comprehensive introduction to type systems and programming language theory. The code which accompanies the book is written in OCaml; this repository contains an F# port of that code.

NOTE: The ported F# code is not a fresh implementation -- it is the original OCaml code with some trivial modifications which allow it to compile with F#. The output of each of the F# projects has been verified to match the output of the original OCaml programs. NOTE/2: This is just a review of the original F# to make it compile with VS2017, latest F# and required packages.

Prerequisites

  • F# compiler
    • Windows
      • Visual Studio 2017
    • Mac OS X / FreeBSD / Linux
  • NuGet is used to manage external packages. The easiest way to install NuGet is by downloading it (for free) from the Visual Studio Extension Gallery. If you do not have NuGet, or are running a version prior to 2.5, you must install it (or upgrade) before you will be able to build the projects.

    The solution uses the Package Restore feature of NuGet to automatically download any missing packages when the project is built. This requires that you have the Allow NuGet to download missing packages during build setting enabled; in Visual Studio, you can find the setting under Options -> Package Manager -> General.

    Once NuGet is installed and configured, you should be able to build the solution.