caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jesper Louis Andersen <jesper.louis.andersen@gmail.com>
To: David Rajchenbach-Teller <David.Teller@univ-orleans.fr>
Cc: Damien Doligez <damien.doligez@inria.fr>,
	Dario Teixeira <darioteixeira@yahoo.com>,
	caml-list@inria.fr
Subject: Re: [Caml-list] Purity and lazyness
Date: Sat, 8 Jan 2011 10:44:43 +0100	[thread overview]
Message-ID: <AANLkTimoN5PxSd8PXtPqApsfOAdsAsNKhaOVYputVT2a@mail.gmail.com> (raw)
In-Reply-To: <41A45D6B-C556-4D60-BA6F-423B60E3A137@univ-orleans.fr>

On Fri, Jan 7, 2011 at 17:38, David Rajchenbach-Teller
<David.Teller@univ-orleans.fr> wrote:
> Correct me if I'm wrong, but I wouldn't classify Erlang as "pure": sending and receiving messages -- which are two of the most important primitives in Erlang -- are definitely side-effects.
> Also, asynchronous error-checking, Mnesia, etc. look quite impure to me.

Right.

Erlang with only the sequential primitives present is not pure either.
There is a process_dictionary which is essentially a state for the
process. Erlang programmers tend to avoid it, but it is used by some
of the standard libraries. Keeping random seed state for instance. If
you remove the process dictionary, then there is ETS, the erlang term
storage (in use as the backend for mnesia). ETS is not pure either, it
is essentially a finite map from erlang terms to erlang terms. Ok,
strip out ETS. Then we have exceptions :) Exceptions are, to the best
of my knowledge, yet another computational effect.

And then there are all the concurrency primitives...

-- 
J.

  parent reply	other threads:[~2011-01-08  9:45 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-07 15:35 Dario Teixeira
2011-01-07 16:07 ` Damien Doligez
2011-01-07 16:38   ` David Rajchenbach-Teller
2011-01-07 18:16     ` Holger Weiß
2011-01-07 20:22     ` Eray Ozkural
2011-01-07 20:29       ` orbitz
2011-01-07 20:30         ` Joel Reymont
2011-01-07 20:33         ` Eray Ozkural
2011-01-08  9:44     ` Jesper Louis Andersen [this message]
2011-01-07 17:21 ` Alain Frisch
2011-01-07 17:46   ` Christophe Raffalli
2011-01-07 18:11 ` Holger Weiß
2011-01-07 18:52   ` Brian Hurt
2011-01-07 19:32     ` Petter Urkedal
2011-01-07 20:25     ` Eray Ozkural
2011-01-09 16:11     ` Jon Harrop
2011-01-10  6:27       ` Eray Ozkural
2011-01-07 19:17 ` Florian Weimer
     [not found]   ` <AANLkTikxCSQ+0XkOmSVDb3EWq_2oQ0pac3bDgc7f7jq+@mail.gmail.com>
2011-01-07 20:52     ` bluestorm
2011-01-09 16:15       ` Jon Harrop
2011-01-08  0:26   ` Elias Gabriel Amaral da Silva
2011-01-08  9:28     ` Christophe Raffalli
2011-01-08 22:47     ` Florian Weimer
2011-01-09 10:00       ` Petter Urkedal

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=AANLkTimoN5PxSd8PXtPqApsfOAdsAsNKhaOVYputVT2a@mail.gmail.com \
    --to=jesper.louis.andersen@gmail.com \
    --cc=David.Teller@univ-orleans.fr \
    --cc=caml-list@inria.fr \
    --cc=damien.doligez@inria.fr \
    --cc=darioteixeira@yahoo.com \
    /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).