'exists' and 'for-all'

Started by Fanda, February 05, 2007, 01:18:00 PM

Previous topic - Next topic

Fanda

I suggest to rename new functions:

'exists' to 'any'

and

'for-all' to 'all'



Fanda



PS: See

http://newlisp-on-noodles.org/wiki/index.php/Functional_Programming#Predicates">http://newlisp-on-noodles.org/wiki/inde ... Predicates">http://newlisp-on-noodles.org/wiki/index.php/Functional_Programming#Predicates

Lutz

#1
In the case of 'exists' and 'for-all' I wanted to stay with the http://www.r6rs.org/r6rs-lib_92.pdf">http://www.r6rs.org/r6rs-lib_92.pdf naming of these functions.



Lutz

Jeremy Dunn

#2
I can live with "exists" although I prefer unhyphenated names when possible, especially for a function that will be used a lot. But shouldn't "for-all" at least be "for-all?" in NewLISP syntax since it returns boolean values whereas "exists" does not?

Lutz

#3
'for-all' and 'exists' are not predicates by themselves, but rather apply a predicate to a list of expressions in a special fashion (and/or).



Lutz

Jeremy Dunn

#4
I'm not sure that I agree. The statement



(if (for-all ...) ...)



performs the exact same purpose as



(if (zero? x) ...)



Why is for-all not a predicate? This seems to me like arguing that "houseboat" is not a noun because it contains the noun "house" within it.

cormullion

#5
Quote from: "Lutz"In the case of 'exists' and 'for-all' I wanted to stay with the http://www.r6rs.org/r6rs-lib_92.pdf">http://www.r6rs.org/r6rs-lib_92.pdf naming of these functions.


Interesting. Why so? Are we moving toward Common Lisp (or Scheme)? ;-)

Lutz

#6
To Jeremy:



In formal logic you call 'for-all' and 'exists' universal or existential quantifiers binding predicates in a logical proposition. They quantify the application of a predicate making it true for either everything/for all or at least one/exists. They only work in conjunction with a predicate applying predicates with a logical connective to a list, but they are not predicates themselves.



To Cormullion:



newLISP most of the time has chosen existent wordings of functions from either Common Lisp or Scheme or earlier incarnations of LISP. This makes it easier for switchers and builds on an existing culture. But we are definitely not moving toward Common Lisp or Scheme. Also newLISP's influences are not limited to other LISPs, newLISP has also taken from other languages, i.e. 'begin' from Pascal instead of 'progn' in Common Lisp, formatting characters from 'C' etc.



Lutz

cormullion

#7
QuoteBut we are definitely not moving toward Common Lisp or Scheme.


That's good to know. It would only slow things down... :-)))))

nigelbrown

#8
Quote from: "Lutz" i.e. 'begin' from Pascal


To allow ALGOL due precedence I always considered begin was from ALGOL (see http://en.wikipedia.org/wiki/ALGOL">http://en.wikipedia.org/wiki/ALGOL ).

Although I concede in ALGOL it was often BEGIN (eg http://bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol06/AA-0196C-TK_algol.pdf">http://bitsavers.org/pdf/dec/pdp10/TOPS ... _algol.pdf">http://bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol06/AA-0196C-TK_algol.pdf ) this is reflecting the upper-case only nature of many of that era's I/O devices, capitalisation was not required by the Revised Report that defined the language (e.g. http://www.masswerk.at/algol60/report.htm">http://www.masswerk.at/algol60/report.htm and http://www.sli-institute.ac.uk/~bob/Algol60RevisedReport.pdf">http://www.sli-institute.ac.uk/~bob/Alg ... Report.pdf">http://www.sli-institute.ac.uk/~bob/Algol60RevisedReport.pdf ).



Nigel