Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !


The Haskell School of Expression - Learning Functional Programming Through Multimedia


The Haskell School of Expression Learning Functional Programming Through Multimedia

Prix public : 37,79 €

Commander
Prix exceptionnel Eyrolles :
35,9€


Auteur(s) :
P.hudak

Editeur : Cambridge University Press
Date de parution : 10/01/2000
ISBN : 0-521-64408-9
EAN : 9780521644082
Voir la fiche complète de ce livre

The Haskell School of Expression - Learning Functional Programming Through Multimedia

Synopsis

Functional programming is a style of programming that emphasizes the use of functions (in contrast to object-oriented programming, which emphasizes the use of objects). It has become popular in recent years because of its simplicity, conciseness, and clarity. This textbook, aimed at beginning and advanced programmers, teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional (boring) mathematical examples commonly found in other programming language textbooks, this text uses examples drawn from multimedia applications, including graphics, animation, and computer music, thus rewarding the student with working programs for inherently more interesting applications.

Table of Contents

Preface
Problem Solving, Programming, and Calculation
Computation by Calculation in Haskell
Expressions, Values, and Types
Function Types and Type Signatures
Abstraction, Abstraction, Abstraction
Naming
Functional Abstraction
Data Abstraction
Code Reuse and Modularity
Beware of Programming with Numbers
A Module of Shapes: Part I
Geometric Shapes
Areas of Shapes
Cleaning Up
Simple Graphics
Basic Input/Output
Graphics Windows
Drawing Graphics Other Than Text
Some Examples
Shapes II: Drawing Shapes
Dealing With Different Coordinate Systems
Converting Shapes to Graphics
Some Examples
In Retrospect
Polymorphic and Higher-Order Functions
Polymorphic Types
Abstraction Over Recursive Definitions
Map is Polymorphic
Using map
Append
The Efficiency and Fixity of Append
Fold
Haskell's Folds
Why Two Folds?
A Final Example: Reverse
Errors
Shapes III: Perimeters of Shapes
Perimeters of Shapes
Trees
A Tree Data Type
Operations on Trees
Arithmetic Expressions
A Module of Regions
The Region Data Type
The Meaning of Shapes and Regions
The Meaning of Shapes
The Encoding of the Meaning of Shapes
The Meaning of Regions
The Encoding of the Meaning of Regions
Algebraic Properties of Regions
In Retrospect
More About Higher-Order Functions
Currying
Sections
Anonymous Functions
Function Composition
Drawing Regions
The Picture Data Type
Drawing Pictures
Drawing Regions
From Regions to Graphics Regions: First Attempt
From Regions to Graphics Regions: Second Attempt
Translating Shapes into Graphics Regions
Examples
User Interaction
Putting it all Together
Examples
Proof by Induction
Induction and Recursion
Examples of List Induction
Proving Function Equivalences
Useful Properties on Lists
Function Strictness
Induction on Other Data Types
A More Efficient Exponentiation Function
Qualified Types
Equality
Defining Your Own Type Classes
Inheritance
Haskell's Standard Type Classes
Derived Instances
Reasoning With Type Classes
A Module of Simple Animations
What is an Animation?
Representing an Animation
An Animator
Fun With Type Classes
Rising to the Level of Animations
Type Classes to the Rescue
Defining New Type Classes for Behaviors
Lifting to the Limit
Time Transformation
A Final Example: A Kaleidoscope Program
Programming With Streams
Lazy Evaluation
Recursive Streams
Stream Diagrams
Lazy Patterns
Memoization
Inductive Properties of Infinite Lists
A Module of Reactive Animations
FAL by Example
Basic Reactivity
Event Choice
Recursive Event Processing
Events with Data
Snapshot
Boolean Events
Integration
Implementing FAL
An Implementation Strategy
Incremental Sampling
Final Refinements
Representing Events
The Implementation
Behaviors
Events
An Example
Extensions
Variations on switch
Mouse Motion
Paddleball in Twenty Lines
Communicating With the Outside World
Files, Channels, and Handles
Why Use Handles?
Channels
Exception Handling
First-Class Channels and Concurrency
Rendering Reactive Animations
Preliminaries
Reactimate
Window User
Higher-Order Types
The Functor Class
The Monad Class
Other Instances of Monad
Other Monadic Operations
The MonadPlus Class
State Monads
Type Class Type Errors
An Imperative Robot Language
IRL by Example
Robot is a State Monad
The Implementation of IRL Commands
Robot Orientation
Using the Pen
Playing With Coins
Logic and Control
All the World is a Grid
Robot Graphics
Putting it all Together
Functional Music Composition
The Music Data Type
Higher-Level Constructions
Lines and Chords
Delay and Repeat
Polyrhythms
Determining Duration
Reversing Musical Structure
Truncating Parallel Composition
Trills
Percussion
A Couple of Final Examples
Cascades
Self-Similar (Fractal) Music
Interpreting Functional Music
Interpreting Music: A Performance
An Algebra of Music
From Performance to MIDI
An Introduction to MIDI
The Conversion Process
Putting It All Together
A Tour of the PreludeList Module
The PreludeList Module
Simple List Selector Functions
Index-Based Selector Functions
Predicate-Based Selector Functions
Fold-like Functions
List Generators
String-Based Functions
Boolean List Functions
List Membership Functions
Arithmetic on Lists
List Combining Functions
A Tour of Haskell's Standard Type Classes
The Ordered Class
The Enumeration Class
The Bounded Class
The Show Class
The Read Class
The Index Class
The Numeric Classes
Built-in Types Are Not Special
Pattern-Matching Details
Bibliography
Index


Commander ce livre au prix de 37,79 € 35,9 €

Classé sous : Type, Functions, Class, Shapes, Regions



Commentaires des membres à propos du livre The Haskell School of Expression Learning Functional Programming Through Multimedia

Aucun commentaire pour le moment.


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,014 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.