Title :
Scientific Programming: The Promises of Typed, Pure, and Lazy Functional Programming: Part II
Author :
Läufer, Konstantin ; Thiruvathukal, George K.
Author_Institution :
Comput. Sci., Loyola Univ. Chicago, Chicago, IL, USA
Abstract :
This second installment picks up where Konrad Hinsen\´s article "The Promises of Functional Programming" from the July/August 2009 issue left off, covering static type inference and lazy evaluation in functional programming languages. In the first installment in this series on functional programming, Konrad Hinsen introduced the functional programming paradigm, which encourages recursion and higher-order functional abstraction in algorithms. In this second installment, we explore several other aspects of the functional paradigm. Using examples in the Closure, Java, and Haskell languages, we discuss some of the benefits of static typing with type inference and pure, side-effect-free functional programming with lazy evaluation. In particular, we argue that these features make Haskell a compelling choice for general software development. The scientific computing community, however, likely require better numeric library support and efficient functional versions of scientific algorithms before accepting Haskell more widely.
Keywords :
functional languages; functional programming; mathematics computing; program control structures; program diagnostics; reasoning about programs; software libraries; type theory; Haskell language; functional programming language; higher-order functional abstraction; lazy evaluation; numeric library support; scientific algorithm; scientific programming; software development; static type inference; Arithmetic; Computer languages; Dynamic programming; Functional programming; Inference algorithms; Java; Runtime; Scientific computing; Software libraries; Virtual machining; Functional programming;
Journal_Title :
Computing in Science & Engineering
DOI :
10.1109/MCSE.2009.147