Abstract

Abstract Functional programming is a promising approach to software design and code development that offers improved program understanding, flexible prototyping, and increased reuse. The description here centers on programming language features and the effects they have on design, integration, and testing. Functional programming focuses on defining the functions to be computed by a program rather than specifying a series of step‐by‐step instructions to be carried out. Using only functions and expressions allows programmers to concentrate on specifying what to compute and avoids the details of controlling how a machine performs the computation. The principal language characteristic that distinguishes functional programming languages from conventional languages is that functions are treated as first‐class objects. This change turns out to have far‐reaching effects. When functions are elevated to first‐class status in a programming language, several conventional language features become redundant and, therefore, are no longer needed. The two most important examples are ( 1 ) step‐by‐step procedural statements and ( 2 ) the use of variables as containers for storing values between steps. Adding first‐class functions and eliminating conventional statements and variables in functional and eliminating conventional statements and variables in functional programming languages combine to increase programmer productivity and software reliability. Examples of functional programming languages include FP . Haskell , Hope , Lisp , Miranda , ML , and Scheme . Most of these are research languages. Lisp, Miranda, and Scheme translators are available as commercial products. The latest article explains some of the terminology and illustrate some of the techniques used in functional programming. Functional programming offers several important advantages over conventional programming techniques in both single‐processor and multiprocessor computing environments. Functional programming represents a marked departure from conventional programming in terms of the language features needed and the programming techniques used. Programmers must be prepared to give up their familiar step‐by‐step instructions and incremental changes to variables to collect these benefits.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.