From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id E2F36BB84 for ; Mon, 6 Oct 2008 16:55:41 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AicBAO3D6UjRVYC6jmdsb2JhbACBcU2QYD4BAQEBCQkMBw8FoWKFVgEC X-IronPort-AV: E=Sophos;i="4.33,368,1220220000"; d="scan'208";a="15712971" Received: from fk-out-0910.google.com ([209.85.128.186]) by mail2-smtp-roc.national.inria.fr with ESMTP; 06 Oct 2008 16:55:41 +0200 Received: by fk-out-0910.google.com with SMTP id k31so2314089fkk.11 for ; Mon, 06 Oct 2008 07:55:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:organization:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id:from; bh=zKzzwH3NHCdyFeDzjm+zBGW6Ovx82vQlZXfJ1ybL2AU=; b=npK5IDeEPer4MLrJgOAKDY9bcPVZZ8DkS0Wy2/KdBO+lUJjwB3A08eUQeU2/9Ie5Vs +2XtxvsCZQQHvbSstmK5Q47b8WpJVZ/ry0z56WQ502MVyLWyCZJc+T5b9FDucXR0332i TZnfikFfN6eXc10Jv1omQFvwKK03LMRXP17a8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=organization:to:subject:date:user-agent:references:in-reply-to :mime-version:content-type:content-transfer-encoding :content-disposition:message-id:from; b=uEuiC9NL6WeVcwnSsGrV+9/HstJMV+amO1j5BR33rKpuNZm6JOK36l04wOVTy7gMTI /FG13EFDex/Yjw1j/+6uOJ64QvfnYxEmynQKL3TEchgUK9Xw2yHwlOoYHL1vt3c9uP6h jPMmhpYXC8B8R0ZjN7w6ZQCKIAsn3G30a07wc= Received: by 10.180.255.1 with SMTP id c1mr3697419bki.23.1223304941452; Mon, 06 Oct 2008 07:55:41 -0700 (PDT) Received: from leper.local (host86-139-250-145.range86-139.btcentralplus.com [86.139.250.145]) by mx.google.com with ESMTPS id c4sm37225881nfi.13.2008.10.06.07.55.40 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 06 Oct 2008 07:55:41 -0700 (PDT) Organization: Flying Frog Consultancy Ltd. To: Brian Hurt , caml-list@yquem.inria.fr Subject: Re: [Caml-list] Metaprogramming features Date: Mon, 6 Oct 2008 16:56:42 +0100 User-Agent: KMail/1.9.9 References: <884069.59268.qm@web54601.mail.re2.yahoo.com> <200810040300.02624.jon@ffconsultancy.com> <48EA1B54.5030200@janestcapital.com> In-Reply-To: <48EA1B54.5030200@janestcapital.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810061656.42903.jon@ffconsultancy.com> From: Jon Harrop X-Spam: no; 0.00; non-trivial:01 frog:98 wrote:01 wrote:01 caml-list:01 data:02 structures:02 represented:02 executable:03 let:03 let:03 examples:07 missing:07 i'm:09 definitely:12 On Monday 06 October 2008 15:06:12 you wrote: > Jon Harrop wrote: > > Code is represented by the form: > > > > .< 1 + 2 >. > > > > This may be executed using: > > > > .! .< 1 + 2 >. > > > > Values may be injected into code using: > > > > .< 1 + .~x >. > > I'm definitely missing something here. How are the above examples > different from: > let f () = 1 + 2;; > f ();; > let f x = 1 + x;; > > ? > > This is a non-trivial question, as there is no clear delineation between > data structures and executable code. Exactly. The difference is (only) the performance characteristics. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e