Printer Friendly
The Free Dictionary
1,036,315,885 visitors served.
?
Dictionary/
thesaurus
Medical
dictionary
Legal
dictionary
Financial
dictionary
Acronyms
 
Idioms
Encyclopedia
Wikipedia
encyclopedia
?

list comprehension
(redirected from Generator expression)

   Also found in: Wikipedia 0.04 sec.
(functional programming)list comprehension - An expression in a functional language denoting the results of some operation on (selected) elements of one or more lists. An example in Haskell:

[ (x,y) | x <- [1 .. 6], y <- [1 .. x], x+y < 10]

This returns all pairs of numbers (x,y) where x and y are elements of the list 1, 2, ..., 10, y <= x and their sum is less than 10.

A list comprehension is simply "syntactic sugar" for a combination of applications of the functions, concat, map and filter. For instance the above example could be written:

filter p (concat (map (\ x -> map (\ y -> (x,y)) [1..x]) [1..6])) where p (x,y) = x+y < 10

According to a note by Rishiyur Nikhil
<nikhil@crl.dec.com>, (August 1992), the term itself seems to have been coined by Phil Wadler circa 1983-5, although the programming construct itself goes back much further (most likely Jack Schwartz and the SETL language).

The term "list comprehension" appears in the references below.

The earliest reference to the notation is in Rod Burstall and John Darlington's description of their language, NPL.

David Turner subsequently adopted this notation in his languages SASL, KRC and Miranda, where he has called them "ZF expressions", set abstractions and list abstractions (in his 1985 FPCA paper [Miranda: A Non-Strict Functional Language with Polymorphic Types]).

["The OL Manual" Philip Wadler, Quentin Miller and Martin Raskovsky, probably 1983-1985].

["How to Replace Failure by a List of Successes" FPCA September 1985, Nancy, France, pp. 113-146].

?Page tools
Printer friendly
Cite / link
Email
Feedback
? Mentioned in
 
Encyclopedia browser? ? Full browser
 
 
Encyclopedia
?

Disclaimer | Privacy policy | Feedback | Copyright © 2008 Farlex, Inc.
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.. Terms of Use.