|
From: | Noah Lavine |
Subject: | Re: order of evaluation |
Date: | Mon, 17 Jun 2013 17:39:19 -0700 |
So it's exactly like `let', then? ;)
Oh sure. It works with let already. It's just not as effective.
> I think we could make CSE work with this, don't you think?
It's tough for me to read this example. Does it have some strange
> To translate this into CPS, I think you need a form that introduces a
> continuation for every unspecified-order clause and then merges them,
> like this:
>
> (let ((foo-cont (lambda (A C) (foo A C))))
> (let-merge-points ((A A-cont) (C C-cont))
> (let ((make-A ((lambda () (a (b))))) ;; not CPS-translating this
> (make-C ((lambda () (c (d))))))
> (any-order (make-A A-cont) (make-C C-cont)))))
>
> Here let-merge-points introduces several continuations, and any-order
> calls them in any order. What do you think?
formatting?
If I understand correctly, I think this is going in the wrong
abstractive direction -- CPS is nice because it's a limpid medium for
program transformations that also corresponds neatly to runtime. With
this sort of thing we'd be moving farther away from the kind of code we
want to emit. Dunno.
[Prev in Thread] | Current Thread | [Next in Thread] |