Terry Reedy <tjre...@udel.edu>: > On 10/17/2017 1:07 AM, Steve D'Aprano wrote: >> -- unless the interpreter > made del a special case, not a regular function. > > This is what Lisp does. Most functions are 'normal': unquoted argument > expressions are evaluated. Some are 'special': at least one of the > argument expressions is automatically quoted or treated specially is > some way. Users have to memorize which functions are special and which > arguments are automatically quoted. Learning the exceptions and > quoting rules was for me a barrier to learning Lisp.
Yes, Lisp (including Scheme) has three kinds of forms: functions: Argument forms are evaluated before passed on to the "callable". The result is returned as is. macros (syntactic forms): Argument forms are passed on to the callable without evaluation. The result is evaluated and then returned. special forms: Argument forms are passed on to the callable without evaluation. The result is returned as is. The biggest ugly spot in the arrangement is that while functions are first-class objects in Lisp, macros and special forms are not. (There are dialects, though, where they all are first class.) Marko -- https://mail.python.org/mailman/listinfo/python-list