Functional programming using F#:
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Cambridge [u.a.]
Cambridge Univ. Press
2013
|
Ausgabe: | 1. publ. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Literaturverz. S. 353 |
Beschreibung: | XI, 361 S. graph. Darst. |
ISBN: | 9781107019027 9781107684065 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV041819070 | ||
003 | DE-604 | ||
005 | 20140813 | ||
007 | t | ||
008 | 140428s2013 d||| |||| 00||| eng d | ||
020 | |a 9781107019027 |c (hbk.) |9 978-1-107-01902-7 | ||
020 | |a 9781107684065 |c (pbk.) |9 978-1-107-68406-5 | ||
035 | |a (OCoLC)889718623 | ||
035 | |a (DE-599)BSZ381452549 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-11 |a DE-91G | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 544f |2 stub | ||
084 | |a DAT 360f |2 stub | ||
100 | 1 | |a Hansen, Michael R. |d 1956- |e Verfasser |0 (DE-588)128611499 |4 aut | |
245 | 1 | 0 | |a Functional programming using F# |c Michael R. Hansen ; Hans Rischel |
250 | |a 1. publ. | ||
264 | 1 | |a Cambridge [u.a.] |b Cambridge Univ. Press |c 2013 | |
300 | |a XI, 361 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Literaturverz. S. 353 | ||
650 | 0 | 7 | |a F sharp |0 (DE-588)7578680-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Funktionale Programmierung |0 (DE-588)4198740-8 |D s |
689 | 0 | 1 | |a F sharp |0 (DE-588)7578680-1 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Rischel, Hans |e Verfasser |4 aut | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027264226&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-027264226 |
Datensatz im Suchindex
_version_ | 1804152148672380928 |
---|---|
adam_text | Titel: Functional programming using F#
Autor: Hansen, Michael R
Jahr: 2013
Contents Preface page ix 1 Getting started 1 1.1 Values, types, identifiers and declarations 1 1.2 Simple function declarations 2 1.3 Anonymous functions. Function expressions 4 1.4 Recursion 6 1.5 Pairs 11 1.6 Types and type checking 13 1.7 Bindings and environments 14 1.8 Euclid’s algorithm 15 1.9 Evaluations with environments 17 1.10 Free-standing programs 19 Summary 19 Exercises 20 2 Values, operators, expressions and functions 21 2.1 Numbers. Truth values. The unit type 21 2.2 Operator precedence and association 23 2.3 Characters and strings 24 2.4 If-then-else expressions 28 2.5 Overloaded functions and operators 29 2.6 Type inference 31 2.7 Functions are first-class citizens 31 2.8 Closures 34 2.9 Declaring prefix and infix operators 35 2.10 Equality and ordering 36 2.11 Function application operators | and | 38 2.12 Summary of the basic types 38 Summary 39 Exercises 39 3 Tuples, records and tagged values 43 3.1 Tuples 43 3.2 Polymorphism 48 3.3 Example: Geometric vectors 48 3.4 Records 50 V
Contents vi 3.5 Example: Quadratic equations 52 3.6 Locally declared identifiers 54 3.7 Example: Rational numbers. Invariants 56 3.8 Tagged values. Constructors 58 3.9 Enumeration types 62 3.10 Exceptions 63 3.11 Partial functions. The option type 64 Summary 65 Exercises 66 4 Lists 67 4.1 The concept of a list 67 4.2 Construction and decomposition of lists 71 4.3 Typical recursions over lists 74 4.4 Polymorphism 78 4.5 The value restrictions on polymorphic expressions 81 4.6 Examples. A model-based approach 82 Summary 88 Exercises 89 5 Collections: Lists, maps and sets 93 5.1 Lists 93 5.2 Finite sets 104 5.3 Maps 113 Summary 119 Exercises 119 6 Finite trees 121 6.1 Chinese boxes 121 6.2 Symbolic differentiation 127 6.3 Binary trees. Parameterized types 131 6.4 Traversal of binary trees. Search trees 133 6.5 Expression trees 137 6.6 Trees with a variable number of sub-trees. Mutual recursion 138 6.7 Electrical circuits 142 Summary 144 Exercises 145 7 Modules 149 7.1 Abstractions 149 7.2 Signature and implementation 150 7.3 Type augmentation. Operators in modules 153 7.4 Type extension 155 7.5 Classes and objects 156 7.6 Parameterized modules. Type variables in signatures 157 7.7 Customizing equality, hashing and the string function 159 7.8 Customizing ordering and indexing 161 7.9 Example: Piecewise linear plane curves 162
Contents vii Summary 170 Exercises 170 8 Imperative features 175 8.1 Locations 175 8.2 Operators on locations 176 8.3 Default values 179 8.4 Sequential composition 179 8.5 Mutable record fields 180 8.6 References 182 8.7 While loops 183 8.8 Imperative functions on lists and other collections 184 8.9 Imperative tree traversal 185 8.10 Arrays 186 8.11 Imperative set and map 188 8.12 Functions on collections. Enumerator functions 190 8.13 Imperative queue 194 8.14 Restrictions on polymorphic expressions 195 Summary 195 Exercises 196 9 Efficiency 197 9.1 Resource measures 197 9.2 Memory management 198 9.3 Two problems 204 9.4 Solutions using accumulating parameters 206 9.5 Iterative function declarations 209 9.6 Tail recursion obtained using continuations 212 Summary 216 Exercises 216 10 Text processing programs 219 10.1 Keyword index example: Problem statement 219 10.2 Capturing data using regular expressions 221 10.3 Text I/O 229 10.4 File handling. Save and restore values in files 230 10.5 Reserving, using and disposing resources 232 10.6 Culture-dependent information. String orderings 232 10.7 Conversion to textual form. Date and time 235 10.8 Keyword index example: The IndexGen program 238 10.9 Keyword index example: Analysis of a web-source 242 10.10 Keyword index example: Putting it all together 245 Summary 248 Exercises 249 11 Sequences 251 11.1 The sequence concept in F# 251 11.2 Some operations on sequences 254
Contents vili 11.3 Delays, recursion and side-effects 256 11.4 Example: Sieve of Eratosthenes 258 11.5 Limits of sequences: Newton-Raphson approximations 260 11.6 Sequence expressions 262 11.7 Specializations of sequences 266 11.8 Type providers and databases 267 Summary 277 Exercises 277 12 Computation expressions 279 12.1 The agenda when defining your own computations 280 12.2 Introducing computation expressions using sequence expressions 281 12.3 The basic functions: For and Yield 282 12.4 The technical setting when defining your own computations 284 12.5 Example: Expression evaluation with error handling 285 12.6 The basic functions: Bind, Return, ReturnFrom and Zero 286 12.7 Controlling the computations: Delay and Start 288 12.8 The basic function: Delay 290 12.9 The fundamental properties of For and Yield, Bind and Return 291 12.10 Monadic parsers 293 Summary 309 Exercises 309 13 Asynchronous and parallel computations 311 13.1 Multi-core processors, cache memories and main memory 311 13.2 Processes, threads and tasks 312 13.3 Challenges and pitfalls in concurrency 314 13.4 Asynchronous computations 316 13.5 Reactive programs 321 13.6 Parallel computations 328 Summary 335 Exercises 336 Appendix A Programs from the keyword example 339 A.l Web source files 339 A.2 The IndexGen program 342 A.3 The NextLevelRefs program 344 Appendix B The TextProcessing library 346 Appendix C The dialogue program from Chapter 13 350 References 353 Index 355
|
any_adam_object | 1 |
author | Hansen, Michael R. 1956- Rischel, Hans |
author_GND | (DE-588)128611499 |
author_facet | Hansen, Michael R. 1956- Rischel, Hans |
author_role | aut aut |
author_sort | Hansen, Michael R. 1956- |
author_variant | m r h mr mrh h r hr |
building | Verbundindex |
bvnumber | BV041819070 |
classification_rvk | ST 250 |
classification_tum | DAT 544f DAT 360f |
ctrlnum | (OCoLC)889718623 (DE-599)BSZ381452549 |
discipline | Informatik |
edition | 1. publ. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01571nam a2200409 c 4500</leader><controlfield tag="001">BV041819070</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20140813 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">140428s2013 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781107019027</subfield><subfield code="c">(hbk.)</subfield><subfield code="9">978-1-107-01902-7</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781107684065</subfield><subfield code="c">(pbk.)</subfield><subfield code="9">978-1-107-68406-5</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)889718623</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BSZ381452549</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-91G</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">DAT 544f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 360f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Hansen, Michael R.</subfield><subfield code="d">1956-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)128611499</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Functional programming using F#</subfield><subfield code="c">Michael R. Hansen ; Hans Rischel</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1. publ.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Cambridge [u.a.]</subfield><subfield code="b">Cambridge Univ. Press</subfield><subfield code="c">2013</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XI, 361 S.</subfield><subfield code="b">graph. Darst.</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">Literaturverz. S. 353</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="650" ind1="0" ind2="7"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Funktionale Programmierung</subfield><subfield code="0">(DE-588)4198740-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><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="700" ind1="1" ind2=" "><subfield code="a">Rischel, Hans</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</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=027264226&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027264226</subfield></datafield></record></collection> |
id | DE-604.BV041819070 |
illustrated | Illustrated |
indexdate | 2024-07-10T01:06:07Z |
institution | BVB |
isbn | 9781107019027 9781107684065 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027264226 |
oclc_num | 889718623 |
open_access_boolean | |
owner | DE-11 DE-91G DE-BY-TUM |
owner_facet | DE-11 DE-91G DE-BY-TUM |
physical | XI, 361 S. graph. Darst. |
publishDate | 2013 |
publishDateSearch | 2013 |
publishDateSort | 2013 |
publisher | Cambridge Univ. Press |
record_format | marc |
spelling | Hansen, Michael R. 1956- Verfasser (DE-588)128611499 aut Functional programming using F# Michael R. Hansen ; Hans Rischel 1. publ. Cambridge [u.a.] Cambridge Univ. Press 2013 XI, 361 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Literaturverz. S. 353 F sharp (DE-588)7578680-1 gnd rswk-swf Funktionale Programmierung (DE-588)4198740-8 gnd rswk-swf Funktionale Programmierung (DE-588)4198740-8 s F sharp (DE-588)7578680-1 s DE-604 Rischel, Hans Verfasser aut HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027264226&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Hansen, Michael R. 1956- Rischel, Hans Functional programming using F# F sharp (DE-588)7578680-1 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
subject_GND | (DE-588)7578680-1 (DE-588)4198740-8 |
title | Functional programming using F# |
title_auth | Functional programming using F# |
title_exact_search | Functional programming using F# |
title_full | Functional programming using F# Michael R. Hansen ; Hans Rischel |
title_fullStr | Functional programming using F# Michael R. Hansen ; Hans Rischel |
title_full_unstemmed | Functional programming using F# Michael R. Hansen ; Hans Rischel |
title_short | Functional programming using F# |
title_sort | functional programming using f |
topic | F sharp (DE-588)7578680-1 gnd Funktionale Programmierung (DE-588)4198740-8 gnd |
topic_facet | F sharp Funktionale Programmierung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027264226&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT hansenmichaelr functionalprogrammingusingf AT rischelhans functionalprogrammingusingf |