caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: skaller <skaller@users.sourceforge.net>
To: Nathaniel Gray <n8gray@gmail.com>
Cc: "Sébastien Hinderer" <sebastien.hinderer@ens-lyon.org>,
	caml-list@pauillac.inria.fr
Subject: Re: [Caml-list] Continuations
Date: 25 Aug 2004 21:13:11 +1000	[thread overview]
Message-ID: <1093432390.15255.558.camel@pelican.wigram> (raw)
In-Reply-To: <aee06c9e04082415183086ce62@mail.gmail.com>

On Wed, 2004-08-25 at 08:18, Nathaniel Gray wrote:
> On 24 Aug 2004 16:47:31 +1000, skaller <skaller@users.sourceforge.net> wrote:
> > On Tue, 2004-08-24 at 08:32, Nathaniel Gray wrote:
> > 
> > > I wrote a "simple" tutorial on continuations that you might try
> > > reading.  You can find it here:
> > >    http://mojave.caltech.edu/papers/cont-tut.ps
> > >
> > > Let me know if there is anything that you think could be improved in
> > > terms of clarity.
> > 
> > This is a nice article to read if you know Python.
> 
> The intention was that that wouldn't matter.  :-) 

That's easy for a Python programmer to say. However I suggest
you pick some language you don't know and have someone
tell you how it works then look at some code... sure,
you can figure out what it does -- painfully -- but you
can't *see* what it does. Which you can for a language you're
familiar with. I think it's like driving a car. Knowing the 
theory is different to being able to do everything automatically.

> As you and several others have pointed out, I may have
> swept too much under the rug.

I wouldn't want to go thru the agony of CPS transforming
some code to avoid stacks -- only to find the result
just used a list instead :)

> I suppose you could put any non-recursive (or tail-recursive)
> sub-computation on the stack.  That would preclude the use of CPS to
> support microthreading, however. 

Ah no, but it doesn't!  Felix has an explicit yield
operator 'read event', it can only be used in procedures, 
not in  functions.  So functions are stackable, whilst 
procedures are not -- context switching isn't
supported in functional code, only in procedural code.

Perhaps that seems like an onerous restriction,
but it in theory it isn't -- functions aren't
allowed to have side effects.. and reading data
has a definite side effect.

-- 
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850, 
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  reply	other threads:[~2004-08-25 11:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-13 21:27 Sébastien Hinderer
2004-08-16  9:46 ` Keith Wansbrough
2004-08-23 22:32 ` Nathaniel Gray
2004-08-24  6:47   ` skaller
2004-08-24 22:18     ` Nathaniel Gray
2004-08-25 11:13       ` skaller [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-08-30 15:24 Continuations Tom
2006-08-30 17:08 ` [Caml-list] Continuations Jacques Carette
2002-12-10 18:49 Ceri Storey
2002-12-11  9:19 ` Christophe Raffalli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1093432390.15255.558.camel@pelican.wigram \
    --to=skaller@users.sourceforge.net \
    --cc=caml-list@pauillac.inria.fr \
    --cc=n8gray@gmail.com \
    --cc=sebastien.hinderer@ens-lyon.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).