Can C ++ be used for functional programming

Functional programming

Concepts of functional programming languages ​​are increasingly being adopted in imperative languages, such as genericity in C ++, Java and C # or higher-order functions in C ++ and C #. But what is behind these concepts and what advantages do they develop in a declarative environment? For this purpose, we deal with the purely functional programming language Haskell. Your programs consist of expressions, the values ​​of which do not depend on the time of the evaluation. There are no assignments, no status, no side effects and no changeable variables. Instead, higher-order functions and delayed evaluation enable new ways of modularizing programs, making them shorter and easier to understand. You can also count on programs, for example to prove their correctness and to optimize them.

The students know the concepts of functional programming, can apply them and have programming experience in a functional language such as Haskell. The knowledge imparted also promotes programming in the functional style in other programming languages.

Topics covered include the lambda calculus, basic concepts, algebraic data types, pattern-based function definitions, list compression, parametric type polymorphism, higher order functions, algorithm schemes, lazy evaluation, infinite data structures, type classes, and monads. Their use is shown through applications from the areas of algorithms, program transformation and compiler construction.

literature

  • Richard Bird,Introduction to Functional Programming using Haskell, Prentice Hall, second edition, 1998.
  • Paul Hudak,The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, 2000.
  • Graham Hutton,Programming in Haskell, Cambridge University Press, 2007.
  • Bryan O'Sullivan, Don Stewart, John Goerzen,Real World Haskell, O'Reilly, 2008.
  • Simon Thompson,Haskell: The Craft of Functional Programming, Addison Wesley, third edition, 2011.
  • Miran Lipovača,Learn You a Haskell for Great Good!, no starch press, 2011.
Bachelor  
Course of studyFSPO (s)classification
Computer science2014, 2017Focus on computer science
Media informatics2014, 2017Focus on media informatics
Software engineering2014, 2017Focus on software engineering
mathematics2018, 2019Minor
Computational Science and Engineering2016, 2019Compulsory elective
   
master  
Course of studyFSPO (s)classification
Computer science2014, 2017Core subject Practical and Applied Computer Science
Media informatics2014, 2017Core subject Practical and Applied Computer Science
Software engineering2014, 2017Core subject software engineering
mathematics2018, 2019Computer science minor
Computational Science and Engineering2016, 2019Compulsory elective
Computer science teacher training2017, 2018Compulsory elective
Information systems technology2017Consolidation, addition

(Information provided without guarantee)

WS 2019/20
WS 2018/19
WS 2017/18
WS 2016/17
WS 2015/16
WS 2014/15
WS 2013/14
WS 2012/13
WS 2011/12
WS 2010/11

past events