Evolution
A simple conditional expression, already present in CPL in 1963, has a guard on first sub-expression, and another sub-expression to use in case the first one cannot be used. Some common ways to write this:
(x>0) -> 1/x; 0 x>0 ? 1/x : 0If the second sub-expression can be a further simple conditional expression, we can give more alternatives to try before the last fall-through:
(x>0) -> 1/x; (x<0) -> -1/x; 0Already ISWIM in 1966 had a form of conditional expression without an obligatory fall-through case, thus separating guard from the concept of choosing either-or. In the case of ISWIM, if none of the alternatives could be used, the value was to be undefined, which was defined to never compute into a value.
SASL (1976) was one of the first programming languages to use the term "guard". In the language, functions could have several definitions and the one to apply was chosen based on the guards that followed each definition:
fac n = 1, n = 0 = n * fac (n-1), n > 0Read more about this topic: Guard (computer Science)
Famous quotes containing the word evolution:
“The evolution of humans can not only be seen as the grand total of their wars, it is also defined by the evolution of the human mind and the development of the human consciousness.”
—Friedrich Dürrenmatt (19211990)
“Historians will have to face the fact that natural selection determined the evolution of cultures in the same manner as it did that of species.”
—Konrad Lorenz (19031989)
“Analyze theory-building how we will, we all must start in the middle. Our conceptual firsts are middle-sized, middle-distanced objects, and our introduction to them and to everything comes midway in the cultural evolution of the race.”
—Willard Van Orman Quine (b. 1908)