skip to main content
Skip header Section
Introduction to Functional ProgrammingApril 1998
Publisher:
  • Pearson Education
ISBN:978-0-13-484346-9
Published:01 April 1998
Pages:
433
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher:

This is a thorough introduction to the fundamental concepts of functional programming.

The book clearly expounds the construction of functional programming as a process of mathematical calculation, but restricts itself to the mathematics relevant to actual program construction. It covers simple and abstract datatypes, numbers, lists, examples, trees, and efficiency. It includes a simple, yet coherent treatment of the Haskell class; a calculus of time complexity; and new coverage of monadic input-output.

Cited By

  1. Hanus M and Teegen F Adding Data to Curry Declarative Programming and Knowledge Management, (230-246)
  2. ACM
    Nunes-Harwitt A, Gambogi M and Whitaker T Quick-Sort Proceedings of the 49th ACM Technical Symposium on Computer Science Education, (547-549)
  3. Martins P, Fernandes J, Saraiva J, Van Wyk E and Sloane A (2016). Embedding attribute grammars and their extensions using functional zippers, Science of Computer Programming, 132:P1, (2-28), Online publication date: 15-Dec-2016.
  4. Matsuzaki K and Miyazaki R (2016). Parallel Tree Accumulations on MapReduce, International Journal of Parallel Programming, 44:3, (466-485), Online publication date: 1-Jun-2016.
  5. Kawabata H and Iwasaki H Improving Floating-Point Numbers Proceedings of the 25th European Symposium on Programming Languages and Systems - Volume 9632, (390-418)
  6. Avanzini M, Moser G and Schaper M TcT Proceedings of the 22nd International Conference on Tools and Algorithms for the Construction and Analysis of Systems - Volume 9636, (407-423)
  7. ACM
    Avanzini M, Dal Lago U and Moser G (2015). Analysing the complexity of functional programs: higher-order meets first-order, ACM SIGPLAN Notices, 50:9, (152-164), Online publication date: 18-Dec-2015.
  8. ACM
    Avanzini M, Dal Lago U and Moser G Analysing the complexity of functional programs: higher-order meets first-order Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, (152-164)
  9. Fernandes J, Cunha J, Saraiva J and Pardo A Watch Out for that Tree! A Tutorial on Shortcut Deforestation Central European Functional Programming School, (1-41)
  10. ACM
    Montrieux L and Hu Z Towards Attribute-Based Authorisation for Bidirectional Programming Proceedings of the 20th ACM Symposium on Access Control Models and Technologies, (185-196)
  11. ACM
    Blanchette J, Hupel L, Nipkow T, Noschinski L and Traytel D (2014). Experience report, ACM SIGPLAN Notices, 49:12, (25-30), Online publication date: 11-May-2015.
  12. ACM
    Blanchette J, Hupel L, Nipkow T, Noschinski L and Traytel D Experience report Proceedings of the 2014 ACM SIGPLAN symposium on Haskell, (25-30)
  13. ACM
    Tirronen V Study on difficulties and misconceptions with modern type systems Proceedings of the 2014 conference on Innovation & technology in computer science education, (303-308)
  14. ACM
    Wang Q, Chen M, Liu Y and Hu Z Towards systematic parallel programming of graph problems via tree decomposition and tree parallelism Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing, (25-36)
  15. ACM
    Holdermans S Random testing of purely functional abstract datatypes Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming, (275-284)
  16. England D A category theory approach to HCI Proceedings of the 27th International BCS Human Computer Interaction Conference, (1-5)
  17. ACM
    Liu Y, Emoto K and Hu Z A generate-test-aggregate parallel programming library Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores, (71-81)
  18. Berghammer R and Fischer S Simple rectangle-based functional programs for computing reflexive-transitive closures Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science, (114-129)
  19. Emoto K, Fischer S and Hu Z Generate, test, and aggregate Proceedings of the 21st European conference on Programming Languages and Systems, (254-273)
  20. ACM
    Matsuda K, Inaba K and Nakano K Polynomial-time inverse computation for accumulative functions with multiple data traversals Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation, (5-14)
  21. Chi Y and Mu S Constructing list homomorphisms from proofs Proceedings of the 9th Asian conference on Programming Languages and Systems, (74-88)
  22. Zsók V, Koopman P and Plasmeijer R (2011). Generic Executable Semantics for D-Clean, Electronic Notes in Theoretical Computer Science (ENTCS), 279:3, (85-95), Online publication date: 1-Dec-2011.
  23. Liu Y, Hu Z and Matsuzaki K Towards systematic parallel programming over mapreduce Proceedings of the 17th international conference on Parallel processing - Volume Part II, (39-50)
  24. Berghammer R A functional, successor list based version of warshall's algorithm with applications Proceedings of the 12th international conference on Relational and algebraic methods in computer science, (109-124)
  25. Delbianco G, Jaskelioff M and Pardo A Applicative shortcut fusion Proceedings of the 12th international conference on Trends in Functional Programming, (179-194)
  26. ACM
    Domínguez F and Pardo A Exploiting algebra/coalgebra duality for program fusion extensions Proceedings of the Eleventh Workshop on Language Descriptions, Tools and Applications, (1-8)
  27. Monroy R Some encounters on the productive use of a failed proof attempt or a counterexample Proceedings of the 9th Mexican international conference on Advances in artificial intelligence: Part I, (1-12)
  28. Hinze R (2010). Concrete stream calculus, Journal of Functional Programming, 20:5-6, (463-535), Online publication date: 1-Nov-2010.
  29. Hinze R Adjoint folds and unfolds Proceedings of the 10th international conference on Mathematics of program construction, (195-228)
  30. ACM
    Massink M, Harrison M and Latella D Scalable analysis of collective behaviour in smart service systems Proceedings of the 2010 ACM Symposium on Applied Computing, (1173-1180)
  31. Harrison W and Hook J (2009). Achieving information flow security through monadic control of effects, Journal of Computer Security, 17:5, (599-653), Online publication date: 1-Oct-2009.
  32. ACM
    Felleisen M, Findler R, Flatt M and Krishnamurthi S (2009). A functional I/O system or, fun for freshman kids, ACM SIGPLAN Notices, 44:9, (47-58), Online publication date: 31-Aug-2009.
  33. ACM
    Felleisen M, Findler R, Flatt M and Krishnamurthi S A functional I/O system or, fun for freshman kids Proceedings of the 14th ACM SIGPLAN international conference on Functional programming, (47-58)
  34. ACM
    Runciman C, Naylor M and Lindblad F (2008). Smallcheck and lazy smallcheck, ACM SIGPLAN Notices, 44:2, (37-48), Online publication date: 28-Jan-2009.
  35. Yokoyama T, Zeng G, Tomiyama H and Takada H Analyzing and optimizing energy efficiency of algorithms on DVS systems a first step towards algorithmic energy minimization Proceedings of the 2009 Asia and South Pacific Design Automation Conference, (727-732)
  36. ACM
    Pardo A, Fernandes J and Saraiva J Shortcut fusion rules for the derivation of circular and higher-order monadic programs Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation, (81-90)
  37. ACM
    Matsuda K, Hu Z and Takeichi M Type-based specialization of xml transformations Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation, (61-72)
  38. ACM
    Runciman C, Naylor M and Lindblad F Smallcheck and lazy smallcheck Proceedings of the first ACM SIGPLAN symposium on Haskell, (37-48)
  39. Martin C and Curtis S Monadic maps and folds for multirelations in an allegory Proceedings of the 2nd international conference on Unifying theories of programming, (102-121)
  40. Hu Z, Mu S and Takeichi M (2008). A programmable editor for developing structured documents based on bidirectional transformations, Higher-Order and Symbolic Computation, 21:1-2, (89-118), Online publication date: 1-Jun-2008.
  41. Visser J (2008). Coupled Transformation of Schemas, Documents, Queries, and Constraints, Electronic Notes in Theoretical Computer Science (ENTCS), 200:3, (3-23), Online publication date: 1-May-2008.
  42. Lumpe M Growing a language Proceedings of the 7th international conference on Software composition, (1-19)
  43. ACM
    Hage J and Holdermans S Heap recycling for lazy languages Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, (189-197)
  44. ACM
    Nettleton C, Ifill W and Marsh C (2007). Towards a demonstrably-correct ada compiler, ACM SIGAda Ada Letters, XXVII:3, (89-96), Online publication date: 17-Nov-2007.
  45. ACM
    Nettleton C, Ifill W and Marsh C Towards a demonstrably-correct ada compiler Proceedings of the 2007 ACM international conference on SIGAda annual international conference, (89-96)
  46. ACM
    Köpf B and Basin D An information-theoretic model for adaptive side-channel attacks Proceedings of the 14th ACM conference on Computer and communications security, (286-296)
  47. ACM
    Fernandes J, Pardo A and Saraiva J A shortcut fusion rule for circular program calculation Proceedings of the ACM SIGPLAN workshop on Haskell workshop, (95-106)
  48. ACM
    Morita K, Morihata A, Matsuzaki K, Hu Z and Takeichi M Automatic inversion generates divide-and-conquer parallel programs Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation, (146-155)
  49. ACM
    Morita K, Morihata A, Matsuzaki K, Hu Z and Takeichi M (2007). Automatic inversion generates divide-and-conquer parallel programs, ACM SIGPLAN Notices, 42:6, (146-155), Online publication date: 10-Jun-2007.
  50. ACM
    Goodman D Introduction and evaluation of Martlet Proceedings of the 16th international conference on World Wide Web, (983-992)
  51. Cunha A and Visser J (2007). Strongly Typed Rewriting For Coupled Software Transformation, Electronic Notes in Theoretical Computer Science (ENTCS), 174:1, (17-34), Online publication date: 1-Apr-2007.
  52. Morimoto T, Takano Y and Iwasaki H Instantly turning a naive exhaustive search into three efficient searches with pruning Proceedings of the 9th international conference on Practical Aspects of Declarative Languages, (65-79)
  53. Damaj I (2007). Higher-level hardware synthesis of the KASUMI algorithm, Journal of Computer Science and Technology, 22:1, (60-70), Online publication date: 1-Jan-2007.
  54. Barbosa L and Oliveira J (2006). Transposing partial components, Theoretical Computer Science, 365:1, (2-22), Online publication date: 10-Nov-2006.
  55. ACM
    Gibbons J Design patterns as higher-order datatype-generic programs Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming, (1-12)
  56. Emoto K, Matsuzaki K, Hu Z and Takeichi M Surrounding theorem Proceedings of the 12th international conference on Parallel Processing, (605-614)
  57. Hyland M, Plotkin G and Power J (2006). Combining effects, Theoretical Computer Science, 357:1, (70-99), Online publication date: 25-Jul-2006.
  58. Bird R Loopless functional algorithms Proceedings of the 8th international conference on Mathematics of Program Construction, (90-114)
  59. Morihata A, Kakehi K, Hu Z and Takeichi M Swapping arguments and results of recursive functions Proceedings of the 8th international conference on Mathematics of Program Construction, (379-396)
  60. Martin C and Curtis S Nondeterministic folds Proceedings of the 8th international conference on Mathematics of Program Construction, (274-298)
  61. Akama K, Nantajeewarawat E and Koike H Program generation in the equivalent transformation computation model using the squeeze method Proceedings of the 6th international Andrei Ershov memorial conference on Perspectives of systems informatics, (41-54)
  62. Cook W, Patwardhan S and Misra J Workflow patterns in orc Proceedings of the 8th international conference on Coordination Models and Languages, (82-96)
  63. ACM
    Matsuzaki K, Iwasaki H, Emoto K and Hu Z A library of constructive skeletons for sequential style of parallel programming Proceedings of the 1st international conference on Scalable information systems, (13-es)
  64. Ho W (2006). An Operational Domain-theoretic Treatment of Recursive Types, Electronic Notes in Theoretical Computer Science (ENTCS), 158, (237-259), Online publication date: 1-May-2006.
  65. Gibbons J and Hutton G (2005). Proof Methods for Corecursive Programs, Fundamenta Informaticae, 66:4, (353-366), Online publication date: 1-Dec-2005.
  66. ACM
    Liu D, Hu Z and Takeichi M An environment for maintaining computation dependency in XML documents Proceedings of the 2005 ACM symposium on Document engineering, (42-51)
  67. ACM
    Berghammer R and Huch F From functional to object-oriented programming Proceedings of the 2005 workshop on Functional and declarative programming in education, (3-8)
  68. Giesl J, Thiemann R and Schneider-Kamp P Proving and disproving termination of higher-order functions Proceedings of the 5th international conference on Frontiers of Combining Systems, (216-231)
  69. Prasetya I, Azurat A, Vos T and Van Leeuwen A Building Verification Condition Generators by Compositional Extensions Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods, (220-230)
  70. ACM
    Kuncak V and Jackson D Relational analysis of algebraic datatypes Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, (207-216)
  71. ACM
    Kuncak V and Jackson D (2005). Relational analysis of algebraic datatypes, ACM SIGSOFT Software Engineering Notes, 30:5, (207-216), Online publication date: 1-Sep-2005.
  72. Hu Z, Yokoyama T and Takeichi M Program optimizations and transformations in calculation form Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering, (144-168)
  73. Gibbons J and Hutton G (2005). Proof Methods for Corecursive Programs, Fundamenta Informaticae, 66:4, (353-366), Online publication date: 1-Jan-2005.
  74. Barbosa L A perspective on component refinement Proceedings of the Third international conference on Formal Methods for Components and Objects, (23-48)
  75. ACM
    Hu Z, Mu S and Takeichi M A programmable editor for developing structured documents based on bidirectional transformations Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, (178-189)
  76. Cunningham H, Liu Y and Xiong H Tutorial: lazy functional programming in Haskell Proceedings of the 2nd annual conference on Mid-south college computing, (78-80)
  77. ACM
    Sarkar M GXL Proceedings of the 42nd annual Southeast regional conference, (336-340)
  78. ACM
    Tevis J and Hamilton J Methods for the prevention, detection and removal of software security vulnerabilities Proceedings of the 42nd annual Southeast regional conference, (197-202)
  79. Silva L, Sampaio A and Barros E (2004). A Constructive Approach to Hardware/Software Partitioning, Formal Methods in System Design, 24:1, (45-90), Online publication date: 1-Jan-2004.
  80. Monroy R (2003). Predicate Synthesis for Correcting Faulty Conjectures, Automated Software Engineering, 10:3, (247-269), Online publication date: 1-Jul-2003.
  81. Cristobal-Salas A, Tchernykh A, Gaudiot J and Lin W (2003). Non-strict execution in parallel and distributed computing, International Journal of Parallel Programming, 31:2, (77-105), Online publication date: 1-Apr-2003.
  82. Erwig M and Schneider M (2002). Spatio-Temporal Predicates, IEEE Transactions on Knowledge and Data Engineering, 14:4, (881-901), Online publication date: 1-Jul-2002.
  83. Setzer A Java as a functional programming language Proceedings of the 2002 international conference on Types for proofs and programs, (279-298)
  84. Gibbons J Calculating functional programs Algebraic and coalgebraic methods in the mathematics of program construction, (149-201)
  85. Sasano I, Hu Z and Takeichi M Generation of efficient programs for solving maximum multi-marking problems Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation, (72-91)
  86. Winter S and Frank A (2000). Topology in Raster and Vector Representation, Geoinformatica, 4:1, (35-65), Online publication date: 1-Mar-2000.
  87. ACM
    Hinze R A new approach to generic functional programming Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (119-132)
  88. Hutton G (1999). A tutorial on the universality and expressiveness of fold, Journal of Functional Programming, 9:4, (355-372), Online publication date: 1-Jul-1999.
Contributors
  • University of Oxford

Recommendations