Professional F# 2.0

Overview

This is a book on the F# programming language.

On the surface of things, that is an intuitively obvious statement, given the title of this book. However, despite the apparent redundancy in saying it aloud, the sentence above elegantly describes what this book is about: The authors are not attempting to teach developers how to accomplish tasks from other languages in this one, nor are they attempting to evangelize the language or its feature set or its use "over" other languages....

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (14) from $2.65   
  • New (4) from $3.47   
  • Used (10) from $2.65   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$3.48
Seller since 2008

Feedback rating:

(1783)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
New

Ships from: cadiz, KY

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$3.47
Seller since 2008

Feedback rating:

(4575)

Condition: New
047052801X SHIPS WITHIN 24 HOURS!! (SAME BUSINESS DAY) GREAT BOOK!!

Ships from: BAY SHORE, NY

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$18.99
Seller since 2010

Feedback rating:

(80)

Condition: New
New Ships from the UK. BRAND NEW Your purchase also supports literacy charities. *****PLEASE NOTE: This item is shipping from an authorized seller in Europe. In the event that a ... return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Dunfermline, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • Standard, 48 States
  • Standard (AK, HI)
$33.98
Seller since 2008

Feedback rating:

(283)

Condition: New
047052801X New item in stock, may show minimal wear from storage. I ship daily. 100% Money Back Guarantee!

Ships from: FORT MYERS, FL

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Page 1 of 1
Showing All
Close
Sort by
Sending request ...

Overview

This is a book on the F# programming language.

On the surface of things, that is an intuitively obvious statement, given the title of this book. However, despite the apparent redundancy in saying it aloud, the sentence above elegantly describes what this book is about: The authors are not attempting to teach developers how to accomplish tasks from other languages in this one, nor are they attempting to evangelize the language or its feature set or its use "over" other languages. They assume that you are considering this book because you have an interest in learning the F# language: its syntax, its semantics, its pros and cons, and its use in concert with other parts of the .NET ecosystem.

The intended reader is a .NET developer, familiar with at least one of the programming languages in the .NET ecosystem. That language might be C# or Visual Basic, or perhaps C++/CLI, IronPython or IronRuby.

Read More Show Less

Product Details

  • ISBN-13: 9780470528013
  • Publisher: Wiley
  • Publication date: 11/9/2010
  • Edition number: 1
  • Pages: 432
  • Product dimensions: 7.40 (w) x 9.20 (h) x 0.70 (d)

Meet the Author

Ted Neward is an independent consultant, an authority in Java and .NET technologies, a Microsoft MVP, and in the INETA Speaker's Bureau.

Aaron C. Erickson is a software developer, technology writer, and frequent guest speaker.

Talbott Crowell is a solution architect with 30 years of experience developing software and co-leads the New England F# User Group.

Richard Minerich is a blogger, speaker, and Microsoft MVP and co-leads the New England F# User Group.

Read More Show Less

Table of Contents

Foreword

Introduction

PART 0 Beginnings

Chapter 1 Primer 3

Setup 5

It's that Time of Year Again 7

Strategy 10

The Delegate Strategy 12

Lambda Calculus (Briefly) 17

Type Inference 22

Immutability 26

Expressions, not Statements 27

Summary 28

PART I Basics

Chapter 2 Lexical Structure 31

Comments 31

Identifiers 32

Preprocessor Directives 33

Significant Whitespace 34

Summary 35

Chapter 3 Primitive Types 37

Boolean 37

Numeric Types 38

Bitwise Operations 40

Floating-Point Types 40

Arithmetic Conversions 41

String and Character Types 42

Unit 43

Units of Measure Types 43

Literal Values 44

Summary 45

Chapter 4 Control Flow 47

Basic Decisions: if 47

Looping: while/do 49

Looping: for 50

Exceptions 50

try...with 51

try...finally 52

Raising and Throwing Exceptions 52

Defining New Exception Types 53

Summary 53

Chapter 5 Composite Types 55

Option Types 55

Option Functions 57

Tuples 58

Arrays 60

Array Construction 60

Array Access 62

Array Functions 62

Lists 65

List Construction 66

List Access 68

List Methods 70

Using Lists and Arrays 72

Sequences 74

Maps 79

Map Construction 79

Map Access 80

Map Functions 81

Sets 82

Summary 83

Chapter 6 Pattern Matching 85

Basics 85

Pattern Types 88

Constant Patterns 88

Variable-Binding ("Named") Patterns 89

AND, OR Patterns 90

Literal Patterns 90

Tuple Patterns 91

as Patterns 92

List Patterns 92

Array Patterns 93

Discriminated Union Patterns 93

Record Patterns 93

Pattern Guards 94

Active Patterns 95

Single Case 96

Partial Case 97

Multi-Case 99

Summary 102

PART II Objects

Chapter 7 Complex Composite Types 105

Type Abbreviations 105

Enum Types 106

Discriminated Union Types 109

Structs 114

Value Type Implicit Members 117

Structs and Pattern-Matching 118

Record Types 119

Record Type Implicit Members 123

Summary 123

Chapter 8 Classes 125

Basics 125

Fields 126

Constructors 127

Creating 131

Members 132

Properties 132

Methods 140

Static Members 146

Operator Overloading 147

Delegates and Events 149

Subscribing 150

Delegates 150

DelegateEvents 152

Beyond DelegateEvents: Events 154

Access Modifiers 155

Type Extensions 157

Summary 159

Chapter 9 Inheritance 161

Basics 161

Fields and Constructors 163

Overriding 166

Abstract Members 168

Default 169

Casting 171

Upcasting 172

Downcasting 172

Flexible Types 173

Boxing and Unboxing 174

Interfaces 177

Implementation 177

Definition 180

Object Expressions 181

Summary 181

Chapter 10 Generics 183

Basics 183

Type Parameters 185

Type Constraints 186

Type Constraint 187

Equality Constraint 187

Comparison Constraint 188

Null Constraint 188

Constructor Constraint 188

Value Type and Reference Type Constraints 188

Other Constraints 189

Statically Resolved Type Parameters 189

Explicit Member Constraint 189

Summary 190

Chapter 11 Packaging 191

Namespaces 191

Referencing a Namespace 191

Defining a Namespace 192

Modules 193

Referencing a Module 193

Defining a Module 193

Summary 195

Chapter 12 Custom Attributes 197

Using Custom Attributes 197

EntryPoint 198

Obsolete 199

Conditional 200

ParamArray 200

Struct, Class, AbstractClass, Interface, Literal, and Measure 201

Assembly Attributes 201

DefaultMember 202

Serializable, NonSerialized 202

AutoOpen 202

Other Attributes 202

Creation and Consumption 203

Creation 203

Consumption 205

Summary 206

PART III Functional Programming

Chapter 13 Functions 209

Traditional Function Calls 209

Mathematical Functions 210

Coming from C# 211

Function Arguments and Return Values 211

Automatic Generalization and Restriction 211

The inline Keyword 212

Type Annotations 213

Generics and Type Constraints 214

Statically Resolved Type Parameters 215

Partial Application 215

Currying 216

Restrictions on Functions and Methods 217

Functions as First Class 218

Recursive Functions 218

Higher Order Functions 219

Storing Functions 221

Creating Functions at Runtime 221

Summary 223

Chapter 14 Immutable Data 225

The Problem with State 225

State Safety 226

Programwide State Safety 226

Local Data State Safety 229

Data Mutation 232

Avoiding Mutation 233

Bubble and Assign 235

Reference Cells 236

Passing by Reference 238

Message Passing 238

Performance Considerations 239

Lists 239

Arrays 242

Sequences 242

Tuples 243

Records 243

structs 243

Summary 245

Chapter 15 Data Types 247

Ambiguously Typed Data 247

Failing Fast 248

Specificity 248

Option as an Example 249

Encapsulating State in Types 249

Avoiding Exceptions 251

Data and State Flow 252

Recursively Defined Data Types 253

Summary 255

Chapter 16 List Processing 257

Collection Abstractions 257

Module Functions 258

Collection Subsets 258

filter 259

Partition 259

Element Transformations 260

map 260

choose 262

collect 262

Accumulators 263

reduce 264

fold 265

scan 266

Summary 267

Chapter 17 Pipelining and Composition 269

Basic Composition and Pipelining 269

Pipelining 270

Composition 272

Applying Pipelining and Composition 275

From Loops to Pipelining 276

From Pipelining to Composition 277

Advanced Composition 278

Summary 280

PART IV Applications

Chapter 18 C# 283

Overview 283

Calling C# Libraries from F# 284

Simple Method Calling Scenarios 284

C# Object Construction 285

F#, C#, and null 286

F# and C# Methods that Expect Delegates 287

F# and C# Events 288

F# to C# Summary 289

Calling F# Libraries from C# 289

Basics of Calling F# 290

F# Tuples in C# Programs 290

Dealing with F# Records from C# 291

Passing Functions to F# Functions 292

Dealing with F# Discriminated Unions from C# 292

Working with F# Option Types from C# 293

Rules of Thumb for Writing F# APIs 294

Summary 295

Chapter 19 Databases 297

Overview 297

Retrieving Data Using ADO.NET 298

Creating a Database Connection 298

Reading Data 299

Filtering Data 300

Insert, Update, and Delete 301

F# and Object Relational Mapping 302

Introducing F# Active Record (FAR) 303

Reading Data 303

Querying Data 304

Adding Data 304

Updating Data 305

Deleting Data 305

What Isn't Supported 306

Coming Soon 306

How FAR Works 306

Dependencies 306

Utility Routines 307

Table Creation 308

Query Processing 309

Implementation of Other FOR Operations 314

Summary 315

Chapter 20 XML 317

Overview 317

F# and LINQ-to-XML 318

Reading 318

Querying 320

Processing 322

Writing 325

Writing XML to Memory or Other Stream-Based Resources 325

F# and XML DOM 325

Reading 326

Querying 327

Processing 328

Writing 329

F#, XML, and Active Patterns 329

Multi-case Active Patterns 330

Partial-Case Active Patterns 336

Summary 339

Chapter 21 ASP.NET MVC 341

Overview 341

Forecast's --- The World's Simplest Weather Forecast Site 342

Modeling the Domain 343

Creating a Repository 344

Creating the Controller 349

Creating Some View Helpers 351

Creating the View 352

Summary 355

Chapter 22 Silverlight 357

Overview 357

Software Runtime and Developer Requirements 359

Visual Studio Project Templates 360

The Silverlight Application 361

The F# Silverlight Library 363

The Silverlight Toolkit 365

Line Charts and Area Charts 365

Designer Tools 366

Data Binding 368

Design Time Data Binding 368

Programmatic Data Binding 371

Calculating Moving Average 372

Putting It All Together 373

Summary 376

Chapter 23 Services 377

Overview 377

An F#-Based Weather Service 378

The Service Contract 378

Leveraging the Domain Model 380

Writing the Service Controller 381

Rendering Weather 381

Helping the Service Controller 381

Service Controller Implementation 382

Service Implementation 383

Implementing the Service Host 383

Consuming Services 385

Generating a Service Stub 385

Writing the Service Consumer 388

Summary 390

Index 391

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)