Programming F#: [a comprehensive guide for writing simple code to solve complex problems]
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Beijing [u.a.]
O'Reilly
2009
|
Ausgabe: | 1st ed. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | Erscheinungsjahr in Vorlageform:c 2010 |
Beschreibung: | XX, 383 S. Ill. |
ISBN: | 9780596153649 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV025585908 | ||
003 | DE-604 | ||
005 | 20111017 | ||
007 | t | ||
008 | 100417s2009 a||| |||| 00||| eng d | ||
015 | |a 09,N43,0040 |2 dnb | ||
016 | 7 | |a 997223189 |2 DE-101 | |
020 | |a 9780596153649 |9 978-0-596-15364-9 | ||
024 | 3 | |a 9780596153649 | |
035 | |a (OCoLC)837012919 | ||
035 | |a (DE-599)BVBBV025585908 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-11 |a DE-861 |a DE-522 |a DE-473 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
100 | 1 | |a Smith, Chris |e Verfasser |4 aut | |
245 | 1 | 0 | |a Programming F# |b [a comprehensive guide for writing simple code to solve complex problems] |c Chris Smith |
250 | |a 1st ed. | ||
264 | 1 | |a Beijing [u.a.] |b O'Reilly |c 2009 | |
300 | |a XX, 383 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Erscheinungsjahr in Vorlageform:c 2010 | ||
650 | 0 | 7 | |a F sharp |0 (DE-588)7578680-1 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a F sharp |0 (DE-588)7578680-1 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=3361636&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020182786&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-020182786 |
Datensatz im Suchindex
_version_ | 1805093882734575616 |
---|---|
adam_text |
Table
of
Contents
Foreword
. xiii
Preface
.xv
Part I. Multiparadigm Programming
1.
Introduction to F#
.3
Getting to Know F#
3
Visual Studio
2010 4
Your Second F# Program
5
Values
6
Whitespace Matters
6
.NET Interop
8
Comments
8
F# Interactive
8
Managing F# Source Files
11
2.
Fundamentals
.13
Primitive Types
13
Numeric Primitives
14
Arithmetic
15
Conversion Routines
17
Biglnt
17
Bitwise Operations
18
Characters
18
Strings
19
Boolean Values
20
Comparison and Equality
21
Functions
22
Type Inference
23
Generic
Functions
24
Scope
25
Control Flow
27
Core Types
29
Unit
29
Tuple
30
Lists
32
Aggregate Operators
36
Option
39
Printfn
41
Anatomy of an F# Program
42
Modules
43
Namespaces
43
Program Startup
44
3.
Functional Programming
.47
Programming with Functions
48
Immutability
49
Function Values
50
Recursive Functions
53
Symbolic Operators
55
Function Composition
57
Pattern Matching
62
Match Failure
64
Named Patterns
64
Matching Literals
65
when Guards
66
Grouping Patterns
67
Matching the Structure of Data
68
Outside of Match Expressions
69
Alternate Lambda Syntax
70
Discriminated Unions
70
Using Discriminated Unions for Tree Structures
72
Pattern Matching
73
Methods and Properties
75
Records
75
Cloning Records
76
Pattern Matching
· 77
Type Inference
77
Methods and Properties
78
Lazy Evaluation
79
Lazy Types
79
Sequences
80
vi
I Table of Contents
Sequence
Expressions
81
Seq Module Functions
82
Aggregate Operators
83
4.
Imperative Programming
. 85
Understanding Memory in .NET
86
Value Types Versus Reference Types
87
Default Values
87
Reference Type Aliasing
89
Changing Values
89
Reference Cells
91
Mutable Records
92
Arrays
92
Indexing an Array
93
Array Slices
95
Creating Arrays
96
Pattern Matching
97
Array Equality
97
Array Module Functions
98
Multidimensional Arrays
99
Mutable Collection Types
101
List<'T>
101
Dictionary<'K,'V>
102
HashSet<'T>
104
Looping Constructs
105
While Loops
105
For Loops
106
Exceptions
108
Handling Exceptions
109
Reraising Exceptions 111
Defining Exceptions 111
5.
Object-Oriented Programming
.115
Programming with Objects
115
The Benefits of OOP
115
When OOP Breaks Down
116
Understanding System. Object
116
Common Methods
117
Object Equality
119
Generated Equality
120
Understanding Classes
122
Explicit Construction
123
Implicit Class Construction
124
Table of Contents I
vii
Generic
Classes
125
The Self-Identifier
127
Methods and Properties
127
Properties
128
Setting Properties in the Constructor
129
Methods
129
Static Methods, Properties, and Fields
131
Method Overloading
133
Accessibility Modifiers
134
Inheritance
136
Method Overriding
138
Categories of Classes
139
Casting
141
6.
.NET Programming
.
.145
The .NET Platform
145
The
CLI
145
Garbage Collection
146
Interfaces
148
Using Interfaces
149
Defining Interfaces
150
Object Expressions
151
Object Expressions for Interfaces
152
Object Expressions for Derived Classes
153
Extension Methods
154
Extending Modules
155
Enumerations
156
Creating Enumerations
156
Conversion
157
When to Use an Enum Versus a Discriminated Union
158
Structs
159
Creating Structs
159
Restrictions
161
When to Use a Struct Versus a Record
161
7.
Applied Functional Programming
.
. 163
Units of Measure
163
Defining Units of Measure
165
Converting Between Units of Measure
166
Generic Units of Measure
167
Active Patterns
168
Single-Case Active Patterns
169
Partial-Case Active Patterns
170
viii
I Table of Contents
Parameterized Active Patterns
172
Multi-Case Active Patterns
173
Using Active Patterns
174
Using Modules
178
Converting Modules to Classes
178
Intentional Shadowing
181
Controlling Module Usage
182
Mastering Lists
183
List Operations
184
Using Lists
185
Tail Recursion
186
Understanding the Stack
187
Introducing Tail Recursion
190
Tail-Recursive Patterns
192
Programming with Functions
195
Currying
195
Eliminating Redundant Code
196
Closures
197
Functional Patterns
199
Memoization
199
Mutable Function Values
201
Lazy Programming
202
8.
Applied Object-Oriented Programming
.205
Operators
205
Operator Overloading
205
Indexers 207
Adding Slices
209
Generic Type Constraints
211
Delegates and Events
214
Defining Delegates
215
Combining Delegates
217
Events
218
Creating Events
218
The Event<_,_> Class
220
The Observable Module
221
Creating .NET Events
225
Part II. Programming F#
9.
Scripting
. 229
F# Script Files
230
Table of Contents |
ix
Directives
230
General Directives
231
F# Script-Specific Directives
231
F# Script
Recipes
234
Colorful Output
234
Producing Sound
235
Walking a Directory Structure
235
Starting Processes Easily
236
Automating Microsoft Office
237
10.
Computation Expressions
. 241
Toward Computation Expressions
241
Computation Expression Builders
244
Custom Computation Expression Builders
247
Asynchronous Workflows
248
The Rounding Workflow
249
The State Workflow
250
11.
Asynchronous and Parallel Programming
.257
Working with Threads
258
Spawning Threads
259
The .NET Thread Pool
260
Sharing Data
261
Asynchronous Programming
265
Asynchronous Workflows
268
The Async Library
269
Async Operations
273
Custom Async Primitives
274
Limitations
275
Parallel Programming
276
Parallel.For
276
The Array.Parallel Module
277
Parallel Extensions for .NET
278
Primitives
279
Concurrent Data Structures
283
12.
Reflection
. 287
Attributes
287
Applying Attributes
289
Defining New Attributes
290
Type Reflection
291
Accessing Types
291
Reflecting on F# Types
296
Table of Contents
13.
Dynamie
Instantiation
298
Instantiating Types
298
Instantiating F# Types
299
Dynamic Invocation
299
The Question Mark Operators
300
Using Reflection
301
Declarative Programming
302
Plug-in Architecture
305
Quotations
.
.311
Quotation Basics
312
Decomposing Quotations
312
Quoting Method Bodies
316
Decomposing Arbitrary Code
318
Application: Deferring Computation to Other Platforms
319
Generating Quotation Expressions
321
Expression Holes
322
Evaluating Quotations
322
Application: Generating Derivatives
324
A. Overview of.NET Libraries
.329
B. F# Interop
. 357
Index
.371
Table of Contents I
xi |
any_adam_object | 1 |
author | Smith, Chris |
author_facet | Smith, Chris |
author_role | aut |
author_sort | Smith, Chris |
author_variant | c s cs |
building | Verbundindex |
bvnumber | BV025585908 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)837012919 (DE-599)BVBBV025585908 |
discipline | Informatik |
edition | 1st ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV025585908</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20111017</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">100417s2009 a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">09,N43,0040</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">997223189</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780596153649</subfield><subfield code="9">978-0-596-15364-9</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9780596153649</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)837012919</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV025585908</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-11</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-473</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Smith, Chris</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming F#</subfield><subfield code="b">[a comprehensive guide for writing simple code to solve complex problems]</subfield><subfield code="c">Chris Smith</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1st ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Beijing [u.a.]</subfield><subfield code="b">O'Reilly</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XX, 383 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Erscheinungsjahr in Vorlageform:c 2010</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">F sharp</subfield><subfield code="0">(DE-588)7578680-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">F sharp</subfield><subfield code="0">(DE-588)7578680-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=3361636&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020182786&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-020182786</subfield></datafield></record></collection> |
id | DE-604.BV025585908 |
illustrated | Illustrated |
indexdate | 2024-07-20T10:34:34Z |
institution | BVB |
isbn | 9780596153649 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-020182786 |
oclc_num | 837012919 |
open_access_boolean | |
owner | DE-11 DE-861 DE-522 DE-473 DE-BY-UBG |
owner_facet | DE-11 DE-861 DE-522 DE-473 DE-BY-UBG |
physical | XX, 383 S. Ill. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | O'Reilly |
record_format | marc |
spelling | Smith, Chris Verfasser aut Programming F# [a comprehensive guide for writing simple code to solve complex problems] Chris Smith 1st ed. Beijing [u.a.] O'Reilly 2009 XX, 383 S. Ill. txt rdacontent n rdamedia nc rdacarrier Erscheinungsjahr in Vorlageform:c 2010 F sharp (DE-588)7578680-1 gnd rswk-swf F sharp (DE-588)7578680-1 s DE-604 text/html http://deposit.dnb.de/cgi-bin/dokserv?id=3361636&prov=M&dok_var=1&dok_ext=htm Inhaltstext Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020182786&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Smith, Chris Programming F# [a comprehensive guide for writing simple code to solve complex problems] F sharp (DE-588)7578680-1 gnd |
subject_GND | (DE-588)7578680-1 |
title | Programming F# [a comprehensive guide for writing simple code to solve complex problems] |
title_auth | Programming F# [a comprehensive guide for writing simple code to solve complex problems] |
title_exact_search | Programming F# [a comprehensive guide for writing simple code to solve complex problems] |
title_full | Programming F# [a comprehensive guide for writing simple code to solve complex problems] Chris Smith |
title_fullStr | Programming F# [a comprehensive guide for writing simple code to solve complex problems] Chris Smith |
title_full_unstemmed | Programming F# [a comprehensive guide for writing simple code to solve complex problems] Chris Smith |
title_short | Programming F# |
title_sort | programming f a comprehensive guide for writing simple code to solve complex problems |
title_sub | [a comprehensive guide for writing simple code to solve complex problems] |
topic | F sharp (DE-588)7578680-1 gnd |
topic_facet | F sharp |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=3361636&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=020182786&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT smithchris programmingfacomprehensiveguideforwritingsimplecodetosolvecomplexproblems |