代做Homework| 代写haskhell | Assignment – 这是一个常规的haskhell的练习题目
CS 457/557 Functional Languages
This course provides a gentle introduction to the ideas and techniques of functional programming, using the Haskell programming language. Functional languages are great for both rapid prototyping and serious software engineer- ing. The key idea is to program declaratively using functiondefinitions rather than operationally using assignments. Haskells features include higher-order functions, strong typing, polymorphism, user-defined algebraic data types,au- tomatic storage management, lazy evaluation, and powerfulabstraction and modularization facilities. The course will concentrate on developing practical programming skills in Haskell, with a brief look at the theoretical underpinnings.
The required text is by Paul Hudak,The Haskell School of Expression, Cambridge University Press, 2000.
An excellent auxiliary reference is Simon Thompson, Haskell: The Craft of Functional Programming, 2nd. ed., Addison-Wesley, 1999.
Two additional short readings are listed in the schedule below; more may be assigned from time to time.
Lecture notes will be available electronically in postscript format via the course home page.
Lots of on-line resources are available athttp://www.haskell.org.
Weekly graded homework assignments (8 in all) 40% Midterm exam 30% Final exam 30%
The weekly assignments are intended to help you master the basic material of the course. Each homework assignment is to be handed in (on paper) at the beginning of class on the Tuesday on which it is due.
Th midterm and final exams are intended to check that you have mastered the fundamentals of the language. They will be open-book, open-notes.
To do the homework, you will need to use the Haskell interpreter called HUGS 98. In particular, youll want the Nov2002 release; some of the graphics code in the Hudak book doesnotwork properly with more recent releases. A copy of this Hugs release is available on the Solaris networkin the CS department in thehugspackage. Alternatively, you can download it for use on your own machine (either Windows or linux) fromhttp://haskell.org/hugs. (Make sure to get the Nov2002 release.) It is easy to install and its resource demands are modest. Any supporting materials (program files, etc.) will be made available on thecourse web page.
Important information will be distributed throughout the term via a mailing list calledcs457list. You can subscribe to this list via the course home page.
Reading Whats due Topics (Example Applications) Sep 27 1,2 Introduction; Using Hugs; Lists 29 Data Types (Shapes); Modules Oct 4 3,4 HW1 IO Actions; Graphics (Drawing Shapes) 6 11 5,6 HW2 Polymorphism; Higher-order functions; Maps and folds (Perimeters of shapes) 13 18 7,8,HJ HW3 Algebraic data types; Trees (Regions) 20 25 9,10 HW4 More higher-order functions: Currying, sections, composition; (Drawing Regions) 27 Nov 1 11 Midterm Exam (2-3:50pm) 3 Proving Program Properties 8 12,13 HW5 Qualified types and type classes (Animations) 10 15 14,H HW6 Streams; Laziness; Infinite data structures 17 22 18,19 HW7 Higher-order types; Monads (Robot Control Language) 24 Thanksgiving Holiday no class 29 HW Dec 1 Pragmatics 5 Final Exam (Monday 10:15am-12:05pm)
Class will normally meet from 2-3:30pm.
Schedule is subject to change.
Numbers in the readings column are chapter numbers from the Hudak textbook.
Letters in the readings column are keyed as follows:
HJ = P. Hudak and M. Jones,Haskell vs. Ada vs. c++ vs. Awk vs. …, An Experiment in Software Prototyping Productivity, July 1994,http://haskell.org/papers/NSWC/jfp.ps.
H = J. Hughes,Why Functional Programming Matters, 1984,http://www.math.chalmers.se/ rjmh/ Papers/whyfp.html.
Additional readings may be assigned from time to time.
Unless specifically indicated otherwise, all homework assignments and exams must represent your own, individual work. It is permissible to discuss the assignment with otherstudents, but you must program and write up the solution by yourself.Do not, under any circumstances, copy another persons program and submit it as your own.Writing code for use by another or using anothers code in any form (even with their permission) will be considered cheating. In particular, cheating will result in an automatic F for theassignment in question, and the initiation of disciplinary action at the University level.
If you are a student with a disability in need of academic accommodations, you should register with Disability Services for Students and notify the instructor immediately to arrange for support services.