<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>07632cam a2200481 a 4500</leader>
  <controlfield tag="001">16672858</controlfield>
  <controlfield tag="003">BD-DhUL</controlfield>
  <controlfield tag="005">20140725145022.0</controlfield>
  <controlfield tag="008">140724s2011    enka          001 0 eng  </controlfield>
  <datafield tag="010" ind1=" " ind2=" ">
    <subfield code="a">  2011009321</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9780470744581</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">0470744588</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9780470970287 (ebk)</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9780470971109 (ebk)</subfield>
  </datafield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9780470971093 (ebk)</subfield>
  </datafield>
  <datafield tag="035" ind1=" " ind2=" ">
    <subfield code="a">(OCoLC)ocn711864596</subfield>
  </datafield>
  <datafield tag="040" ind1=" " ind2=" ">
    <subfield code="a">DLC</subfield>
    <subfield code="c">DLC</subfield>
    <subfield code="d">YDX</subfield>
    <subfield code="d">YDXCP</subfield>
    <subfield code="d">CDX</subfield>
    <subfield code="d">UPM</subfield>
    <subfield code="d">INU</subfield>
    <subfield code="d">DLC</subfield>
    <subfield code="d">BD-DhUL</subfield>
  </datafield>
  <datafield tag="042" ind1=" " ind2=" ">
    <subfield code="a">pcc</subfield>
  </datafield>
  <datafield tag="050" ind1="0" ind2="0">
    <subfield code="a">QA76.73.C154</subfield>
    <subfield code="b">S78 2011</subfield>
  </datafield>
  <datafield tag="082" ind1="0" ind2="0">
    <subfield code="a">005.114</subfield>
    <subfield code="2">22</subfield>
    <subfield code="b">STP</subfield>
  </datafield>
  <datafield tag="084" ind1=" " ind2=" ">
    <subfield code="a">COM051060</subfield>
    <subfield code="2">bisacsh</subfield>
  </datafield>
  <datafield tag="100" ind1="1" ind2=" ">
    <subfield code="a">Sturm, Oliver.</subfield>
  </datafield>
  <datafield tag="245" ind1="1" ind2="0">
    <subfield code="a">Professional functional programming in C# :</subfield>
    <subfield code="b">classic programming techniques for modern projects /</subfield>
    <subfield code="c">Oliver Sturm.</subfield>
  </datafield>
  <datafield tag="246" ind1="3" ind2="4">
    <subfield code="a">Functional programming in C#</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="a">Chichester, West Sussex, U.K. :</subfield>
    <subfield code="b">Wiley,</subfield>
    <subfield code="c">2011.</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">xvii, 270 p. :</subfield>
    <subfield code="b">ill. ;</subfield>
    <subfield code="c">24 cm.</subfield>
  </datafield>
  <datafield tag="365" ind1=" " ind2=" ">
    <subfield code="a">USD</subfield>
    <subfield code="b">31.49</subfield>
  </datafield>
  <datafield tag="500" ind1=" " ind2=" ">
    <subfield code="a">Includes index.</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2="0">
    <subfield code="g">Machine generated contents note:</subfield>
    <subfield code="g">ch. 1</subfield>
    <subfield code="t">A Look At Functional Programming History --</subfield>
    <subfield code="t">What Is Functional Programming? --</subfield>
    <subfield code="t">Functional Languages --</subfield>
    <subfield code="t">The Relationship to Object Oriented Programming --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 2</subfield>
    <subfield code="t">Putting Functional Programming Into A Modern Context --</subfield>
    <subfield code="t">Managing Side Effects --</subfield>
    <subfield code="t">Agile Programming Methodologies --</subfield>
    <subfield code="t">Declarative Programming --</subfield>
    <subfield code="t">Functional Programming Is a Mindset --</subfield>
    <subfield code="t">Is Functional Programming in C# a Good Idea? --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 3</subfield>
    <subfield code="t">Functions, Delegates, And Lambda Expressions --</subfield>
    <subfield code="t">Functions and Methods --</subfield>
    <subfield code="t">Reusing Functions --</subfield>
    <subfield code="t">Anonymous Functions and Lambda Expressions --</subfield>
    <subfield code="t">Extension Methods --</subfield>
    <subfield code="t">Referential Transparency --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 4</subfield>
    <subfield code="t">Flexible Typing With Generics --</subfield>
    <subfield code="t">Generic Functions --</subfield>
    <subfield code="t">Generic Classes --</subfield>
    <subfield code="t">Constraining Types --</subfield>
    <subfield code="t">Other Generic Types --</subfield>
    <subfield code="t">Covariance and Contravariance --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 5</subfield>
    <subfield code="t">Lazy Listing With Iterators --</subfield>
    <subfield code="t">The Meaning of Laziness --</subfield>
    <subfield code="t">Enumerating Things with .NET --</subfield>
    <subfield code="t">Implementing Iterator Functions --</subfield>
    <subfield code="t">Returning IEnumerator --</subfield>
    <subfield code="t">Chaining Iterators --</subfield>
    <subfield code="t">Summary</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2="0">
    <subfield code="g">Ch. 6</subfield>
    <subfield code="t">Encapsulating Data In Closures --</subfield>
    <subfield code="t">Constructing Functions Dynamically --</subfield>
    <subfield code="t">The Problem with Scope --</subfield>
    <subfield code="t">How Closures Work --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 7</subfield>
    <subfield code="t">Code Is Data --</subfield>
    <subfield code="t">Expression Trees in .NET --</subfield>
    <subfield code="t">Analyzing Expressions --</subfield>
    <subfield code="t">Generating Expressions --</subfield>
    <subfield code="t">.NET 4.0 Specifics --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 8</subfield>
    <subfield code="t">Currying And Partial Application --</subfield>
    <subfield code="t">Decoupling Parameters --</subfield>
    <subfield code="t">Manual Currying --</subfield>
    <subfield code="t">Automatic Currying --</subfield>
    <subfield code="t">Calling Curried Functions --</subfield>
    <subfield code="t">The Class Context --</subfield>
    <subfield code="t">What FCSlib Contains --</subfield>
    <subfield code="t">Calling Parts of Functions --</subfield>
    <subfield code="t">Why Parameter Order Matters --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 9</subfield>
    <subfield code="t">Lazy Evaluation --</subfield>
    <subfield code="t">What's Good about Being Lazy? --</subfield>
    <subfield code="t">Passing Functions --</subfield>
    <subfield code="t">Explicit Lazy Evaluation --</subfield>
    <subfield code="t">Comparing the Lazy Evaluation Techniques --</subfield>
    <subfield code="t">Usability --</subfield>
    <subfield code="t">Efficiency --</subfield>
    <subfield code="t">How Lazy Can You Be? --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 10</subfield>
    <subfield code="t">Caching Techniques --</subfield>
    <subfield code="t">The Need to Remember --</subfield>
    <subfield code="t">Precomputation --</subfield>
    <subfield code="t">Memoization --</subfield>
    <subfield code="t">Deep Memoization --</subfield>
    <subfield code="t">Considerations on Memoization --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 11</subfield>
    <subfield code="t">Calling Yourself --</subfield>
    <subfield code="t">Recursion in C# --</subfield>
    <subfield code="t">Tail Recursion --</subfield>
    <subfield code="t">Accumulator Passing Style --</subfield>
    <subfield code="t">Continuation Passing Style --</subfield>
    <subfield code="t">Indirect Recursion --</subfield>
    <subfield code="t">Summary</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2="0">
    <subfield code="g">Ch. 12</subfield>
    <subfield code="t">Standard Higher Order Functions --</subfield>
    <subfield code="t">Applying Operations: Map --</subfield>
    <subfield code="t">Using Criteria: Filter --</subfield>
    <subfield code="t">Accumulating: Fold --</subfield>
    <subfield code="t">Map, Filter, and Fold in LINQ --</subfield>
    <subfield code="t">Standard Higher Order Functions --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 13</subfield>
    <subfield code="t">Sequences --</subfield>
    <subfield code="t">Understanding List Comprehensions --</subfield>
    <subfield code="t">A Functional Approach to Iterators --</subfield>
    <subfield code="t">Ranges --</subfield>
    <subfield code="t">Restrictions --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 14</subfield>
    <subfield code="t">Constructing Functions From Functions --</subfield>
    <subfield code="t">Composing Functions --</subfield>
    <subfield code="t">Advanced Partial Application --</subfield>
    <subfield code="t">Combining Approaches --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 15</subfield>
    <subfield code="t">Optional Values --</subfield>
    <subfield code="t">The Meaning of Nothing --</subfield>
    <subfield code="t">Implementing Option(al) Values --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 16</subfield>
    <subfield code="t">Keeping Data From Changing --</subfield>
    <subfield code="t">Change Is Good[ -- ]Not! --</subfield>
    <subfield code="t">False Assumptions --</subfield>
    <subfield code="t">Being Static Is Good --</subfield>
    <subfield code="t">A Matter of Depth --</subfield>
    <subfield code="t">Cloning --</subfield>
    <subfield code="t">Automatic Cloning --</subfield>
    <subfield code="t">Implementing Immutable Container Data Structures --</subfield>
    <subfield code="t">Linked List --</subfield>
    <subfield code="t">Queue --</subfield>
    <subfield code="t">Unbalanced Binary Tree --</subfield>
    <subfield code="t">Red/Black Tree --</subfield>
    <subfield code="t">Alternatives to Persistent Data Types --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 17</subfield>
    <subfield code="t">Monads --</subfield>
    <subfield code="t">What's in a Typeclass? --</subfield>
    <subfield code="t">What's in a Monad? --</subfield>
    <subfield code="t">Why Do a Whole Abstraction? --</subfield>
    <subfield code="t">A Second Monad: Logging --</subfield>
    <subfield code="t">Syntactic Sugar --</subfield>
    <subfield code="t">Binding with SelectMany? --</subfield>
    <subfield code="t">Summary</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2="0">
    <subfield code="g">Ch. 18</subfield>
    <subfield code="t">Integrating Functional Programming Approaches --</subfield>
    <subfield code="t">Refactoring --</subfield>
    <subfield code="t">List Filtering with a Windows Forms UI --</subfield>
    <subfield code="t">Calculating Mandelbrot Fractals --</subfield>
    <subfield code="t">Writing New Code --</subfield>
    <subfield code="t">Use Static Methods --</subfield>
    <subfield code="t">Prefer Anonymous Methods Over Named Ones --</subfield>
    <subfield code="t">Prefer Higher Order Functions over Manual Algorithm Implementation --</subfield>
    <subfield code="t">Prefer Immutable Data --</subfield>
    <subfield code="t">Watch Behavior Implementation in Classes --</subfield>
    <subfield code="t">Finding Likely Candidates for Functional Programming --</subfield>
    <subfield code="t">Shades of Grey --</subfield>
    <subfield code="t">Using What's There --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 19</subfield>
    <subfield code="t">The MapReduce Pattern --</subfield>
    <subfield code="t">Implementing MapReduce --</subfield>
    <subfield code="t">Abstracting the Problem --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 20</subfield>
    <subfield code="t">Applied Functional Modularization --</subfield>
    <subfield code="t">Executing SQL Code from an Application --</subfield>
    <subfield code="t">Rewriting the Function with Partial Application and Precomputation in Mind --</subfield>
    <subfield code="t">Summary --</subfield>
    <subfield code="g">ch. 21</subfield>
    <subfield code="t">Existing Projects Using Functional Techniques --</subfield>
    <subfield code="t">The .NET Framework --</subfield>
    <subfield code="t">LINQ --</subfield>
    <subfield code="t">LINQ to Objects --</subfield>
    <subfield code="t">LINQ to a Query Backend --</subfield>
    <subfield code="t">Parallelization --</subfield>
    <subfield code="t">Google MapReduce and Its Implementations --</subfield>
    <subfield code="t">NUnit --</subfield>
    <subfield code="t">Summary.</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">"Take advantage of the growing trend in functional programming. C# is the number-one language used by.NET developers and one of the most popular programming languages in the world. It has many built-in functional programming features, but most are complex and little understood. With the shift to functional programming increasing at a rapid pace, you need to know how to leverage your existing skills to take advantage of this trend. Functional Programming in C# leads you along a path that begins with the historic value of functional ideas. Inside, C# MVP and functional programming expert Oliver Sturm explains the details of relevant language features in C# and describes theory and practice of using functional techniques in C#, including currying, partial application, composition, memoization, and monads. Next, he provides practical and versatile examples, which combine approaches to solve problems in several different areas, including complex scenarios like concurrency and high-performance calculation frameworks as well as simpler use cases like Web Services and business logic implementation... Shows how C# developers can leverage their existing skills to take advantage of functional programming. Uses very little math theory and instead focuses on providing solutions to real development problems with functional programming methods, unlike traditional functional programming titles. Includes examples ranging from simple cases to more complex scenarios.. Let Functional Programming in C# show you how to get in front of the shift toward functional programming."--</subfield>
    <subfield code="c">Provided by publisher.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">C# (Computer program language)</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Functional programming (Computer science)</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="2">
    <subfield code="3">Cover image</subfield>
    <subfield code="u">http://catalogimages.wiley.com/images/db/jimages/9780470744581.jpg</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="2">
    <subfield code="3">Contributor biographical information</subfield>
    <subfield code="u">http://www.loc.gov/catdir/enhancements/fy1210/2011009321-b.html</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="2">
    <subfield code="3">Publisher description</subfield>
    <subfield code="u">http://www.loc.gov/catdir/enhancements/fy1210/2011009321-d.html</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2="1">
    <subfield code="3">Table of contents only</subfield>
    <subfield code="u">http://www.loc.gov/catdir/enhancements/fy1210/2011009321-t.html</subfield>
  </datafield>
  <datafield tag="906" ind1=" " ind2=" ">
    <subfield code="a">7</subfield>
    <subfield code="b">cbc</subfield>
    <subfield code="c">orignew</subfield>
    <subfield code="d">1</subfield>
    <subfield code="e">ecip</subfield>
    <subfield code="f">20</subfield>
    <subfield code="g">y-gencatlg</subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="2">ddc</subfield>
    <subfield code="c">BK</subfield>
  </datafield>
  <datafield tag="955" ind1=" " ind2=" ">
    <subfield code="b">xj12 2011-03-02</subfield>
    <subfield code="c">xj12 2011-03-02 ONIX to STM</subfield>
    <subfield code="a">xn01 2012-01-11 1 copy rec'd., to CIP ver.</subfield>
  </datafield>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">743</subfield>
    <subfield code="d">743</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="0">0</subfield>
    <subfield code="1">0</subfield>
    <subfield code="2">ddc</subfield>
    <subfield code="4">0</subfield>
    <subfield code="6">005_114000000000000_STP</subfield>
    <subfield code="7">0</subfield>
    <subfield code="8">NFIC</subfield>
    <subfield code="9">1225</subfield>
    <subfield code="a">DUSL</subfield>
    <subfield code="b">DUSL</subfield>
    <subfield code="c">GEN</subfield>
    <subfield code="d">2012-11-13</subfield>
    <subfield code="e">Purchased</subfield>
    <subfield code="o">005.114 STP</subfield>
    <subfield code="p">476028</subfield>
    <subfield code="r">2014-07-25</subfield>
    <subfield code="w">2014-07-25</subfield>
    <subfield code="y">BK</subfield>
  </datafield>
</record>
