Hi Alex, Thanks for the useful information! And thanks for using Sunday mornings for things that matters. ;-)
/Jon > On Sun, Apr 25, 2010 at 10:15:16AM +0200, Jon Kleiser wrote: >> > : (list) >> > -> (NIL) >> > >> > That's fine, ... >> >> Or is it? Why doesn't (list) evaluate to the same as () ? > > This is a matter on how 'list' is defined. We had some time ago a > similar discussion with 'on' and 'off', I think. > > Many functions which expect at least one argument take "no argument" as > NIL. This is consistent with other situations where (optional) > non-supplied arguments are handled as 'NIL'. > > And it is a matter of efficiency, if the interpreter doesn't have to > check if there is really an argument or not. Pure pragmatism ;-) > > > A better example for that might be 'cons'. It is supposed to create a > new cell. 'cons' is the basic cell-building function. So the call might > be > > (cons NIL NIL) > > This is, however, equivalent (and consistent) with > > (cons NIL) > > or even just > > (cons) > > This is short and practical. I never write (cons NIL NIL) when I want to > create an empty call, but always (cons). > > To be true, in case of 'list' this doesn't make much sense, but still > (list) might be called to create a single empty cell. > > Cheers, > - Alex -- UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe