1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
\relax
\citation{haskell-98}
\citation{bird98}
\citation{davie92}
\citation{huda89a}
\citation{haskell-libs}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}}
\newlabel{tut-intro}{{1}{1}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Values, Types, and Other Goodies}{2}}
\newlabel{tut-values-etc}{{2}{2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Polymorphic Types}{3}}
\newlabel{tut-polymorphism}{{2.1}{3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}User-Defined Types}{5}}
\newlabel{tut-user-types}{{2.2}{5}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}Recursive Types}{6}}
\newlabel{tut-recursive-types}{{2.2.1}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Type Synonyms}{7}}
\newlabel{tut-type-synonyms}{{2.3}{7}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Built-in Types Are Not Special}{7}}
\newlabel{tut-built-ins}{{2.4}{7}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}List Comprehensions and Arithmetic Sequences}{9}}
\newlabel{tut-list-comps}{{2.4.1}{9}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.2}Strings}{10}}
\newlabel{tut-strings}{{2.4.2}{10}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Functions}{10}}
\newlabel{tut-functions}{{3}{10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Lambda Abstractions}{11}}
\newlabel{tut-lambda}{{3.1}{11}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Infix Operators}{11}}
\newlabel{tut-infix-ops}{{3.2}{11}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Sections}{11}}
\newlabel{tut-sections}{{3.2.1}{11}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Fixity Declarations}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Functions are Non-strict}{12}}
\newlabel{tut-non-strict}{{3.3}{12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}``Infinite'' Data Structures}{13}}
\newlabel{tut-infinite}{{3.4}{13}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Circular Fibonacci Sequence}}{14}}
\newlabel{tut-fib-fig}{{1}{14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}The Error Function}{15}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Case Expressions and Pattern Matching}{15}}
\newlabel{tut-pattern-matching}{{4}{15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Pattern-Matching Semantics}{16}}
\newlabel{tut-matching-semantics}{{4.1}{16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}An Example}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Case Expressions}{17}}
\newlabel{tut-case}{{4.3}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Lazy Patterns}{18}}
\newlabel{tut-lazy-patterns}{{4.4}{18}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Client-Server Simulation}}{19}}
\newlabel{tut-client-fig}{{2}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Lexical Scoping and Nested Forms}{20}}
\newlabel{tut-nesting}{{4.5}{20}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Layout}{20}}
\newlabel{tut-layout}{{4.6}{20}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Type Classes and Overloading}{21}}
\newlabel{tut-type-classes}{{5}{21}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Types, Again}{27}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}The Newtype Declaration}{27}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Field Labels}{28}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Strict Data Constructors}{29}}
\newlabel{tut-strict-flag}{{6.3}{29}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Input/Output}{30}}
\newlabel{tut-io}{{7}{30}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Basic I/O Operations}{31}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Programming With Actions}{32}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Exception Handling}{33}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Files, Channels, and Handles}{35}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Haskell and Imperative Programming}{36}}
\@writefile{toc}{\contentsline {section}{\numberline {8}Standard Haskell Classes}{37}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Equality and Ordered Classes}{37}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}The Enumeration Class}{37}}
\newlabel{tut-enum-classes}{{8.2}{37}}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}The Read and Show Classes}{37}}
\newlabel{tut-text-class}{{8.3}{37}}
\citation{wadler:list-of-successes}
\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Derived Instances}{41}}
\newlabel{tut-derived-instances}{{8.4}{41}}
\citation{wadler:mffp}
\@writefile{toc}{\contentsline {section}{\numberline {9}About Monads}{42}}
\newlabel{tut-monads}{{9}{42}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Monadic Classes}{43}}
\newlabel{tut-monadic-classes}{{9.1}{43}}
\citation{wadler:mffp}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Built-in Monads}{45}}
\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Using Monads}{46}}
\citation{RRRRS}
\citation{steele:common-lisp}
\@writefile{toc}{\contentsline {section}{\numberline {10}Numbers}{51}}
\@writefile{toc}{\contentsline {subsection}{\numberline {10.1}Numeric Class Structure}{51}}
\@writefile{toc}{\contentsline {subsection}{\numberline {10.2}Constructed Numbers}{52}}
\@writefile{toc}{\contentsline {subsection}{\numberline {10.3}Numeric Coercions and Overloaded Literals}{52}}
\newlabel{tut-num-constants}{{10.3}{52}}
\@writefile{toc}{\contentsline {subsection}{\numberline {10.4}Default Numeric Types}{53}}
\@writefile{toc}{\contentsline {section}{\numberline {11}Modules}{54}}
\newlabel{tut-modules}{{11}{54}}
\@writefile{toc}{\contentsline {subsection}{\numberline {11.1}Qualified Names}{55}}
\@writefile{toc}{\contentsline {subsection}{\numberline {11.2}Abstract Data Types}{56}}
\newlabel{tut-ADTs}{{11.2}{56}}
\@writefile{toc}{\contentsline {subsection}{\numberline {11.3}More Features}{57}}
\newlabel{tut-rules}{{11.3}{57}}
\@writefile{toc}{\contentsline {section}{\numberline {12}Typing Pitfalls}{57}}
\@writefile{toc}{\contentsline {subsection}{\numberline {12.1}Let-Bound Polymorphism}{58}}
\@writefile{toc}{\contentsline {subsection}{\numberline {12.2}Numeric Overloading}{58}}
\@writefile{toc}{\contentsline {subsection}{\numberline {12.3}The Monomorphism Restriction}{58}}
\@writefile{toc}{\contentsline {section}{\numberline {13}Arrays}{59}}
\@writefile{toc}{\contentsline {subsection}{\numberline {13.1}Index types}{59}}
\citation{id-manual}
\@writefile{toc}{\contentsline {subsection}{\numberline {13.2}Array Creation}{60}}
\@writefile{toc}{\contentsline {subsection}{\numberline {13.3}Accumulation}{61}}
\@writefile{toc}{\contentsline {subsection}{\numberline {13.4}Incremental updates}{62}}
\@writefile{toc}{\contentsline {subsection}{\numberline {13.5}An example: Matrix Multiplication}{62}}
\bibstyle{plain}
\bibdata{tut}
\bibcite{bird98}{1}
\bibcite{davie92}{2}
\bibcite{huda89a}{3}
\bibcite{haskell-98}{4}
\bibcite{haskell-libs}{5}
\bibcite{id-manual}{6}
\bibcite{RRRRS}{7}
\bibcite{steele:common-lisp}{8}
\bibcite{wadler:list-of-successes}{9}
\bibcite{wadler:mffp}{10}
\@writefile{toc}{\contentsline {section}{\numberline {14}The Next Stage}{64}}
\@writefile{toc}{\contentsline {section}{\numberline {15}Acknowledgements}{64}}
|