![]() Lists as contexts: a deeper look at the Applicative type class Working with files Ĭapstone: Processing binary files and book data Ī peek at the Applicative type class: using functions in a context Interacting with the command line and lazy IO The Maybe type: dealing with missing values Using type classes Ĭapstone: Secret messages! Ĭreating types with "and" and "or" ĭesign by composition: Semigroups and monoids Higher-order functions Ĭapstone: Functional object-oriented programming with flowers! Ĭreating your own types Rules for recursion and pattern matching Lambda functions and lexical scope įirst-class functions Ĭlosures and partial application ![]() Getting started with Haskell įunctions and functional programming Here follows a preliminary plan of the course, which may be marginally altered during the semester depending on the pedagogical needs. Introduction to Computer Science, Discrete Mathematics We will take the opportunity of this course on Haskell to cover elements of formal language theory, with the implementation in Haskell of a parser, pretty-printer and interpreter for a small imperative language. The language comes with a rigorous semantics and everything one can expect of a functional programming language: static type inference, lazy evaluation, type classes, explicit handling of effects using monads, and concurrency primitives and abstractions. The purpose of the course will be to provide an advanced introduction to Haskell, a purely functional language used today in the software industry for real-world applications. As a result, functional programs are generally simpler to reason about, to maintain and to execute in parallel than imperative or object-oriented programs. There are good reasons for this success: functional programs are modular by design, and interact through expressive and cleanly specified interfaces, using static typing and pattern matching. Functional Programming is a very powerful and expressive style of programming which has become extremely popular in the recent years, both in the academic world and in the software industry.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |