Skip to Content
Programming F# 3.0, 2nd Edition
book

Programming F# 3.0, 2nd Edition

by Chris Smith
October 2012
Beginner
471 pages
10h 50m
English
O'Reilly Media, Inc.
Content preview from Programming F# 3.0, 2nd Edition

Chapter 15. Type Providers

Connecting to an SQL database or retrieving data from a web service might seem like a mundane thing to do in a programming language, but the mechanism F# uses for connecting to data providers sets it apart from other languages by the use of a feature called type providers. But before we can look at the power and flexibility type providers bring to the F# language, let’s look at why they are needed.

Typed Data Versus Typed Languages

F# is a statically typed programming language and goes well out of its way to encourage F# programmers to embrace types. For example, not many other languages have features like:

  • Type abbreviations such as type NodeList = List<Node> allowing you to create ad hoc types.

  • Units of measure such as 32.0f<Fahrenheit> that allow you to further specialize primitive data types.

But F#’s type system has a crucial limitation. (Actually, this is true for most any programming language.) Types only describe the shape of data within programs. The outside world—and the data it contains—is also typed, but in a way that is completely divorced from the program code.

The API for opening XML documents just returns a generic XElement back, even if the underlying document contains data with a well-known structure or schema.

The API for reading a web request’s response just returns a byte buffer, which could represent JSON, an XML SOAP message, or a custom binary format such as a Protocol Buffer.

If protobufs and JSON are familiar to you, then you should immediately ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Programming F#

Programming F#

Chris Smith
Beginning F# 4.0

Beginning F# 4.0

Robert Pickering, Kit Eason
Expert F# 4.0, Fourth Edition

Expert F# 4.0, Fourth Edition

Don Syme, Adam Granicz, Antonio Cisternino

Publisher Resources

ISBN: 9781449326036Errata Page