SRFI 69 update David Van Horn (30 Aug 2005 20:56 UTC)
Re: SRFI 69 update Tony Garnock-Jones (30 Aug 2005 23:19 UTC)
hash-table-*/default (Re: SRFI 69 update) Panu Kalliokoski (31 Aug 2005 07:56 UTC)
Re: hash-table-*/default (Re: SRFI 69 update) Tony Garnock-Jones (31 Aug 2005 08:36 UTC)
Re: hash-table-*/default (Re: SRFI 69 update) Panu Kalliokoski (31 Aug 2005 12:44 UTC)
Re: hash-table-*/default (Re: SRFI 69 update) Tony Garnock-Jones (31 Aug 2005 19:30 UTC)
Re: hash-table-*/default (Re: SRFI 69 update) Panu Kalliokoski (01 Sep 2005 05:49 UTC)

Re: hash-table-*/default (Re: SRFI 69 update) Panu Kalliokoski 01 Sep 2005 05:48 UTC

On Wed, Aug 31, 2005 at 08:30:12PM +0100, Tony Garnock-Jones wrote:
> > True, but the implementation is already there for those who want
> > something rigorous. :)
> So long as the implementation is *normative* and not simply
> *informative*, then fine. That needs to be made clear, though.

No, the problem is exactly that the implementation is half-normative,
half-informative.  If I specify the behaviour of e.g.
hash-table-ref/default by writing code, I must also specify just how
normative the implementation is.  For example, if I said:

	hash-table-ref/default

	Behaves as if defined by
	(define (hash-table-ref/default ht key default)
	  (hash-table-ref ht key (lambda () default)))

Then, is this a valid implementation anymore:

(define (hash-table-ref/default ht key default)
  (set! *log* (cons "hash-table-ref/default called" *log*))
  (hash-table-ref ht key (lambda () default)))

?  I would say it is not, because it does not behave anymore as if it
was defined as in the spec.  (value-)equivalence of expressions is
better because it makes contracts about the return value of a function
only.

I think I'm going for the "evaluates to" version, unless further
discussion emerges.

> > It's just that viewed differently, (hash-table-ref) can be seen as a
> > kind of control structure, similar to (and) or (if).
> Careful! The logical endpoint of this kind of thought is normal-order
> evaluation... :)

Indeed.

Panu

--
personal contact: xxxxxx@iki.fi, +35841 5323835, +3589 85619369
work contact: xxxxxx@helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/