newLISP Fan Club

Forum => newLISP newS => Topic started by: Fanda on February 05, 2007, 01:18:00 PM

Title: 'exists' and 'for-all'
Post by: Fanda on February 05, 2007, 01:18:00 PM
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
Title:
Post by: Lutz on February 05, 2007, 01:36:59 PM
In the case of 'exists' and 'for-all' I wanted to stay with the http://www.r6rs.org/r6rs-lib_92.pdf naming of these functions.



Lutz
Title:
Post by: Jeremy Dunn on February 05, 2007, 06:39:44 PM
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?
Title:
Post by: Lutz on February 05, 2007, 07:09:38 PM
'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
Title:
Post by: Jeremy Dunn on February 06, 2007, 12:25:35 PM
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.
Title:
Post by: cormullion on February 06, 2007, 01:04:37 PM
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 naming of these functions.


Interesting. Why so? Are we moving toward Common Lisp (or Scheme)? ;-)
Title:
Post by: Lutz on February 06, 2007, 01:44:52 PM
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
Title:
Post by: cormullion on February 06, 2007, 02:05:48 PM
QuoteBut we are definitely not moving toward Common Lisp or Scheme.


That's good to know. It would only slow things down... :-)))))
Title:
Post by: nigelbrown on February 06, 2007, 04:09:56 PM
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 ).

Although I concede in ALGOL it was often BEGIN (eg 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 and http://www.sli-institute.ac.uk/~bob/Algol60RevisedReport.pdf ).



Nigel