ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
4 декабря
106807
Evgeny_CD, Архитектор (06.12.2007 23:38, просмотров: 6751)
Две буки по Haskell - что-то часто мне стало попадаться упоминание этого языка. Канешна, от него математикой веет (и посему мне как-то неуютно), но вдруг его не дураки придумали ? :) http://upload.caxa …hs-and-programming.pdf The Haskell Road to Logic, Maths and Programming (Texts in Computing S.) 9780954300692 (0954300696), College Publications, 2004 Long ago, when Alexander the Great asked the mathematician Menaechmus for a crash course in geometry, he got the famous reply “There is no royal road to mathematics.” Where there was no shortcut for Alexander, there is no shortcut for us. Still, the fact that we have access to computers and mature programming languages means that there are avenues for us that were denied to the kings and emperors of yore. The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming. The programming language that will be our tool for this is Haskell, a member of the Lisp family. Haskell emerged in the last decade as a standard for lazy functional programming, a programming style where arguments are evaluated only when the value is actually needed. Functional programming is a form of descriptive programming, very different from the style of programming that you find in prescriptive languages like C or Java. Haskell is based on a logical theory of computable functions called the lambda calculus. Lambda calculus is a formal language capable of expressing arbitrary computable functions. In combination with types it forms a compact way to denote on the one hand functional programs and on the other hand mathematical proofs. [Bar84] Haskell can be viewed as a particularly elegant implementation of the lambda calculus. It is a marvelous demonstration tool for logic and math because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. ================================================================= http://upload.caxa …amming-2nd-edition.pdf Haskell: The Craft of Functional Programming (2nd Edition) 9780201342758 (0201342758), Addison Wesley, 1999 The second edition of Haskell: The Craft of Functional Programming is essential reading for beginners to functional programming and newcomers to the Haskell programming language. The emphasis is on the process of crafting programs and the text contains many examples and running case studies, as well as advice an program design, testing, problem solving and how to avoid common pitfalls. Building on the strengths of the first edition, the book includes many new and improved features: Complete coverage of Haskell 98, the standard version of Haskell which will be stable and supported by implementations for years to come. An emphasis on software engineering principles, encouraging a disciplined approach to building reusable libraries of software components. Detailed coverage of the Hugs interpreter with an appendix covering other implementations. A running case study of pictures emphasizes the built-in functions which appear in the standard prelude and libraries. It is also used to give an early preview of some of the more complex language features, such as high-order functions. List comprehensions and the standard functions over lists are covered before recursion. Early coverage of polymorphism supporting the "toolkit" approach and encouraging the resuse of built-in functions and types. Extensive reference material containing details of further reading in books, journals and on the World Wide Web. Accompanying Web Site supporting the book, containing all the program code, further teaching materials and other useful resources. Computer technology changes with frightening speed; the fundamentals, however, remain remarkably static. The architecture of the standard computer is hardly changed from the machines which were built half acentury ago, even though their size and power are incomparably different from those of today. In programming, modern ideas like object-orientation have taken decades to move from the research environment into the commercial mainstream. In this light, a functional language like Haskell is a relative youngster, but one with a growing influence to play.