[Scheme-reports] 5.1 programs Andy Wingo (19 May 2011 16:14 UTC)
Re: [Scheme-reports] 5.1 programs Alex Shinn (20 May 2011 05:18 UTC)

[Scheme-reports] 5.1 programs Andy Wingo 19 May 2011 16:14 UTC

The docs say:

  Program parts other than expressions that are present at the top
  levele of a program can be interpreted declaratiely.  They cause
  bindings to be created in the top level environment or modify the
  value of existing top-level bindings.  Expressions occurring at the
  top level of a program are interpreted imperatively; they are executed
  in order when the program is invoked or loaded and typically perform
  some kind of initialization.

I don't think that "declaratively" is right here.  A definition can
cause a side effect, viz:

  (define foo (begin (delete-file "bar") 1))

Furthermore order and scope is unclear.  Using R6RS expansion rules --
and, whether you agree with them or not, they are a model for clarity --
you can indeed interpret some parts declaratively; the even? / odd?
example that is frequently trotted out for nested definitions works for
toplevel definitions as well.

Funally the result of invoking a continuation captured at the toplevel
is not mentioned.  On purpose?

Andy
--
http://wingolog.org/

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports