At Mon, 11 Jul 2011 18:28:56 -0400, Guillaume Marceau wrote: > On Thu, Jul 7, 2011 at 12:44 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > > * ASL incorrectly specifies >= 1 arguments required for functions and > > function calls (i.e., functions and call are not common syntax at > > that point). > > > > Stephen pointed out that function calls in BSL can invoke functions of > zero arguments. You can't define such a function, but if you get it > from a library, it works fine. > > Should I document the grammar for function calls as (name expression > ...) thorough?
My initial reaction was that a 0-ary function call is a syntax error, but a teachpack might extend the grammar by introducing a binding that works without arguments. That is, the 0-ary extension is part of the teachpack, not the grammar. But it seems that 0-ary function calls are not syntax errors after all (in any Recent version of DrRacket). For example, BSL accepts (define (f x) (cons)) and complain only when `f' is called. I'm not sure whether it's better to try to fix that or leave it alone (maybe it's not causing any trouble) and adapt the grammar somehow. I write "somehow" because calling a (not pre-)defined function with 0 argument is a syntax error. For example, BSL rejects (define (f x) (f)) as a syntax error. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev