000 07632cam a2200481 a 4500
001 16672858
003 BD-DhUL
005 20140725145022.0
008 140724s2011 enka 001 0 eng
010 _a 2011009321
020 _a9780470744581
020 _a0470744588
020 _a9780470970287 (ebk)
020 _a9780470971109 (ebk)
020 _a9780470971093 (ebk)
035 _a(OCoLC)ocn711864596
040 _aDLC
_cDLC
_dYDX
_dYDXCP
_dCDX
_dUPM
_dINU
_dDLC
_dBD-DhUL
042 _apcc
050 0 0 _aQA76.73.C154
_bS78 2011
082 0 0 _a005.114
_222
_bSTP
084 _aCOM051060
_2bisacsh
100 1 _aSturm, Oliver.
245 1 0 _aProfessional functional programming in C# :
_bclassic programming techniques for modern projects /
_cOliver Sturm.
246 3 4 _aFunctional programming in C#
260 _aChichester, West Sussex, U.K. :
_bWiley,
_c2011.
300 _axvii, 270 p. :
_bill. ;
_c24 cm.
365 _aUSD
_b31.49
500 _aIncludes index.
505 0 0 _gMachine generated contents note:
_gch. 1
_tA Look At Functional Programming History --
_tWhat Is Functional Programming? --
_tFunctional Languages --
_tThe Relationship to Object Oriented Programming --
_tSummary --
_gch. 2
_tPutting Functional Programming Into A Modern Context --
_tManaging Side Effects --
_tAgile Programming Methodologies --
_tDeclarative Programming --
_tFunctional Programming Is a Mindset --
_tIs Functional Programming in C# a Good Idea? --
_tSummary --
_gch. 3
_tFunctions, Delegates, And Lambda Expressions --
_tFunctions and Methods --
_tReusing Functions --
_tAnonymous Functions and Lambda Expressions --
_tExtension Methods --
_tReferential Transparency --
_tSummary --
_gch. 4
_tFlexible Typing With Generics --
_tGeneric Functions --
_tGeneric Classes --
_tConstraining Types --
_tOther Generic Types --
_tCovariance and Contravariance --
_tSummary --
_gch. 5
_tLazy Listing With Iterators --
_tThe Meaning of Laziness --
_tEnumerating Things with .NET --
_tImplementing Iterator Functions --
_tReturning IEnumerator --
_tChaining Iterators --
_tSummary
505 0 0 _gCh. 6
_tEncapsulating Data In Closures --
_tConstructing Functions Dynamically --
_tThe Problem with Scope --
_tHow Closures Work --
_tSummary --
_gch. 7
_tCode Is Data --
_tExpression Trees in .NET --
_tAnalyzing Expressions --
_tGenerating Expressions --
_t.NET 4.0 Specifics --
_tSummary --
_gch. 8
_tCurrying And Partial Application --
_tDecoupling Parameters --
_tManual Currying --
_tAutomatic Currying --
_tCalling Curried Functions --
_tThe Class Context --
_tWhat FCSlib Contains --
_tCalling Parts of Functions --
_tWhy Parameter Order Matters --
_tSummary --
_gch. 9
_tLazy Evaluation --
_tWhat's Good about Being Lazy? --
_tPassing Functions --
_tExplicit Lazy Evaluation --
_tComparing the Lazy Evaluation Techniques --
_tUsability --
_tEfficiency --
_tHow Lazy Can You Be? --
_tSummary --
_gch. 10
_tCaching Techniques --
_tThe Need to Remember --
_tPrecomputation --
_tMemoization --
_tDeep Memoization --
_tConsiderations on Memoization --
_tSummary --
_gch. 11
_tCalling Yourself --
_tRecursion in C# --
_tTail Recursion --
_tAccumulator Passing Style --
_tContinuation Passing Style --
_tIndirect Recursion --
_tSummary
505 0 0 _gCh. 12
_tStandard Higher Order Functions --
_tApplying Operations: Map --
_tUsing Criteria: Filter --
_tAccumulating: Fold --
_tMap, Filter, and Fold in LINQ --
_tStandard Higher Order Functions --
_tSummary --
_gch. 13
_tSequences --
_tUnderstanding List Comprehensions --
_tA Functional Approach to Iterators --
_tRanges --
_tRestrictions --
_tSummary --
_gch. 14
_tConstructing Functions From Functions --
_tComposing Functions --
_tAdvanced Partial Application --
_tCombining Approaches --
_tSummary --
_gch. 15
_tOptional Values --
_tThe Meaning of Nothing --
_tImplementing Option(al) Values --
_tSummary --
_gch. 16
_tKeeping Data From Changing --
_tChange Is Good[ -- ]Not! --
_tFalse Assumptions --
_tBeing Static Is Good --
_tA Matter of Depth --
_tCloning --
_tAutomatic Cloning --
_tImplementing Immutable Container Data Structures --
_tLinked List --
_tQueue --
_tUnbalanced Binary Tree --
_tRed/Black Tree --
_tAlternatives to Persistent Data Types --
_tSummary --
_gch. 17
_tMonads --
_tWhat's in a Typeclass? --
_tWhat's in a Monad? --
_tWhy Do a Whole Abstraction? --
_tA Second Monad: Logging --
_tSyntactic Sugar --
_tBinding with SelectMany? --
_tSummary
505 0 0 _gCh. 18
_tIntegrating Functional Programming Approaches --
_tRefactoring --
_tList Filtering with a Windows Forms UI --
_tCalculating Mandelbrot Fractals --
_tWriting New Code --
_tUse Static Methods --
_tPrefer Anonymous Methods Over Named Ones --
_tPrefer Higher Order Functions over Manual Algorithm Implementation --
_tPrefer Immutable Data --
_tWatch Behavior Implementation in Classes --
_tFinding Likely Candidates for Functional Programming --
_tShades of Grey --
_tUsing What's There --
_tSummary --
_gch. 19
_tThe MapReduce Pattern --
_tImplementing MapReduce --
_tAbstracting the Problem --
_tSummary --
_gch. 20
_tApplied Functional Modularization --
_tExecuting SQL Code from an Application --
_tRewriting the Function with Partial Application and Precomputation in Mind --
_tSummary --
_gch. 21
_tExisting Projects Using Functional Techniques --
_tThe .NET Framework --
_tLINQ --
_tLINQ to Objects --
_tLINQ to a Query Backend --
_tParallelization --
_tGoogle MapReduce and Its Implementations --
_tNUnit --
_tSummary.
520 _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."--
_cProvided by publisher.
650 0 _aC# (Computer program language)
650 0 _aFunctional programming (Computer science)
856 4 2 _3Cover image
_uhttp://catalogimages.wiley.com/images/db/jimages/9780470744581.jpg
856 4 2 _3Contributor biographical information
_uhttp://www.loc.gov/catdir/enhancements/fy1210/2011009321-b.html
856 4 2 _3Publisher description
_uhttp://www.loc.gov/catdir/enhancements/fy1210/2011009321-d.html
856 4 1 _3Table of contents only
_uhttp://www.loc.gov/catdir/enhancements/fy1210/2011009321-t.html
906 _a7
_bcbc
_corignew
_d1
_eecip
_f20
_gy-gencatlg
942 _2ddc
_cBK
955 _bxj12 2011-03-02
_cxj12 2011-03-02 ONIX to STM
_axn01 2012-01-11 1 copy rec'd., to CIP ver.
999 _c743
_d743