From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 8F0D481799 for ; Tue, 23 Jul 2013 02:16:26 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of oleg@okmij.org) identity=pra; client-ip=66.39.3.115; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="oleg@okmij.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of oleg@okmij.org designates 66.39.3.115 as permitted sender) identity=mailfrom; client-ip=66.39.3.115; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="oleg@okmij.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@www1.g3.pair.com) identity=helo; client-ip=66.39.3.115; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="oleg@okmij.org"; x-sender="postmaster@www1.g3.pair.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnkCANjK7VFCJwNzemdsb2JhbABbgzvBAIEsDgEBCwcNCTyCJAEBBAF5BRY0aRSIDwYMuE6NQ4JTBxaDaAOXXAGBKZM2PA X-IPAS-Result: AnkCANjK7VFCJwNzemdsb2JhbABbgzvBAIEsDgEBCwcNCTyCJAEBBAF5BRY0aRSIDwYMuE6NQ4JTBxaDaAOXXAGBKZM2PA X-IronPort-AV: E=Sophos;i="4.89,722,1367964000"; d="scan'208";a="26939030" Received: from www1.g3.pair.com ([66.39.3.115]) by mail2-smtp-roc.national.inria.fr with SMTP; 23 Jul 2013 02:16:25 +0200 Received: (qmail 11627 invoked by uid 9370); 23 Jul 2013 00:16:24 -0000 Date: 23 Jul 2013 00:16:24 -0000 Message-ID: <20130723001624.11626.qmail@www1.g3.pair.com> From: oleg@okmij.org To: krismicinski@gmail.com CC: caml-list@inria.fr, habet_ms@yahoo.fr In-reply-to: Subject: Re: [Caml-list] functional or imperative feature ? > The purest way to view it is that after desugaring, sequenced > statements turn into lambdas, which turn into (morally) binds from the > IO monad. The observation is that when writing in ML, you are > implicitly writing in the IO monad. Peter Landin has described this process already in 1965. See the exact quotation from his paper (the ()-passing trick) in http://okmij.org/ftp/Computation/IO-monad-history.html (as well a few comments). That Peter Landin's paper also described State and Writer monads, streams and delayed evaluation and even stream fusion.