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=3.8 required=5.0 tests=AWL,DNS_FROM_RFC_POST, HTML_00_10,HTML_MESSAGE,NO_REAL_NAME,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 81E54BBC4 for ; Wed, 1 Apr 2009 17:17:33 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvUBAIki00nRVcbRmWdsb2JhbACCIzOSGAwiOT8BAQEBAQgLCgcRqTGREoN7Boct X-IronPort-AV: E=Sophos;i="4.39,307,1235948400"; d="scan'208";a="37661247" Received: from rv-out-0304.google.com ([209.85.198.209]) by mail4-smtp-sop.national.inria.fr with ESMTP; 01 Apr 2009 17:17:30 +0200 Received: by rv-out-0304.google.com with SMTP id g35so59628rvb.3 for ; Wed, 01 Apr 2009 08:17:28 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <49D2455A.1070802@inria.fr> Received: by 10.114.77.1 with SMTP id z1mr1410504waa.15.1238599048770; Wed, 01 Apr 2009 08:17:28 -0700 (PDT) Message-ID: <00163645923c523a2b04667fd02e@google.com> Date: Wed, 01 Apr 2009 15:17:28 +0000 Subject: Re: Re: [Caml-list] questions From: xahlee@gmail.com To: Xavier Leroy , Kuba Ober , caml-list@yquem.inria.fr Content-Type: multipart/alternative; boundary=00163645923c523a1604667fd02b X-Spam: no; 0.00; syntax:01 ocaml:01 ocaml:01 syntax:01 2009:98 hopkins:98 2009:98 hopkins:98 wrote:01 wrote:01 caml-list:01 minor:01 minor:01 arithmetic:01 arithmetic:01 X-Attachments: cset="UTF-8" cset="UTF-8" --00163645923c523a1604667fd02b Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes Content-Transfer-Encoding: base64 SGkgWGF2aWVyIExlcm95LA0KDQpPbiBNYXIgMzEsIDIwMDkgOTozMWFtLCBYYXZpZXIgTGVyb3kg PFhhdmllci5MZXJveUBpbnJpYS5mcj4gd3JvdGU6DQo+IE9uZSBsYXN0IHdvcmQgdG8geW91LCB0 aGF0IFhhaCBMZWUgdHJvbGwsIGFuZCBhbnlvbmUgZWxzZSBvbiB0aGlzDQo+IGxpc3Q6IGlmIHlv dSdyZSBub3QgaGFwcHkgd2l0aCB0aGUgZXhpc3RpbmcgbWF0ZXJpYWwsIHdyaXRlIHNvbWV0aGlu Zw0KPiBiZXR0ZXIuIEV2ZXJ5b25lIHdpbGwgdGhhbmsgeW91IGFuZCB5b3UnbGwgZ2V0IHRvIGJl dHRlciBhcHByZWNpYXRlDQo+IHRoZSBkaWZmaWN1bHR5IG9mIHRoZSB0YXNrLg0KDQphbHRob3Vn aCB0aGVyZSBhcmUgc2V2ZXJhbCBnb29kIHR1dG9yaWFscywgYnV0IGkgdGhpbmsgaXQgaXMgaW1w b3J0YW50IHRoYXQgIA0KdGhlIGJ1bmRsZWQgb2ZmaWNpYWwgdHV0b3JpYWwgc2hvdWxkIGJlIG9u ZSB0aGF0IGlzIGdvb2QuIEJ5IOKAnGdvb2TigJ0gaGVyZSwgaSAgDQptZWFuLCBpdCBnaXZlcyBh IHNpbXBsZSBvdmVydmlldyBvZiB0aGUgc3ludGF4LCBhbmQgYSBzaW1wbGUgb3ZlcnZpZXcsIHN1 Y2ggIA0KYXMgaG93IHRvIGRvIGFyaXRobWV0aWMsIGJhc2ljIHR5cGVzLCBpZiB0aGVuIGVsc2Us IHRydWUgZmFsc2UgaXNzdWVzLCBhICANCmNvdXBsZSBleGFtcGxlIG9mIG1vc3QgdXNlZCBkYXRh IHR5cGVzIHN1Y2ggYXMgbGlzdCBhbmQgbi10dXBsZSBhbmQgIA0KcmVjb3JkcywgaG93IHRvIGRl ZmluZSBhIGZ1bmN0aW9uLCBob3cgdG8gY2FsbCBhIGxpYnJhcnkuDQoNCkpvbidzLCBhbmQgU2Nv dHQncyB0dXRvcmlhbCBhcmUgYm90aCBpbiB0aGlzIGZvcm1hdCBhbmQgaSB0aGluayBpcyB2ZXJ5 ICANCnN1aXRhYmxlOg0KDQrigKIgT2NhbWwgZm9yIFNjaWVudGlzdHMsIGJ5IEpvbiBIYXJyb3As IGNoYXB0ZXIgMSBmcmVlOg0KaHR0cDovL3d3dy5mZmNvbnN1bHRhbmN5LmNvbS9wcm9kdWN0cy9v Y2FtbF9mb3Jfc2NpZW50aXN0cy9jaGFwdGVyMS5odG1sDQoNCuKAoiDigJxJbnRyb2R1Y3Rpb24g dG8gQ2FtbOKAnSBieSBTY290dCBTbWl0aCBvZiBKb2hucyBIb3BraW5zIFUuIEEgbGVjdHVyZSBu b3RlLg0KaHR0cDovL3d3dy5jcy5qaHUuZWR1L35zY290dC9wbC9sZWN0dXJlcy9jYW1sLWludHJv Lmh0bWwNCg0KSSBvbmx5IHN0YXJ0ZWQgbGVhcm5pbmcgT0NhbWwsIGJ1dCBteSBjdXJyZW50IG5v dGVzIGF0Og0KaHR0cDovL3hhaGxlZS5vcmcvb2NhbWwvb2NhbWxfYmFzaWNzLmh0bWwNCg0KaXMg YWxzbyBpbiB0aGlzIGZvcm1hdC4gSSBkb24ndCBrbm93IGlmIEpvbidkIGJlIHdpbGxpbmcgdG8g bGVuZCBoaXMgIA0KY2hhcHRlciAxIHRvIGJlIHRoZSBvZmZpY2lhbCBidW5kbGVkIHR1dG9yaWFs LiAod291bGQgeW91IEpvbj8pIE15IGd1ZXNzIGlzICANCnRoYXQgU2NvdHQgd291bGQgZWFzaWx5 IG9mZmVyIGhpcyB0b28uIChObyBpbXBsaWNhdGlvbiB0aGF0IGFueW9uZSBzaG91bGQgIA0Kb2Zm ZXIgdGhpcywgb2YgY291cnNlLikNCg0KSWYgYW55IG9mZmljaWFsIG9jYW1sIHBlb3BsZSB3aXNo ZXMsIGZlZWwgZnJlZSB0byBzdGFydCB3aXRoIG1pbmUgYXMgdGhlICANCmJ1bmRsZWQgdHV0b3Jp YWwuIEknbSBzdXJlIHdpdGggbWlub3IgZWRpdGluZyBieSB5b3UgZXhwZXJ0cywgaXQgd291bGQg YmUgIA0KdmVyeSBzdWl0YWJsZS4NCg0KSSdtIG9mdGVuIHdyb25nLiAoXl9eKTsgQnV0IGkgdGhp bmsgYSBzaW1wbGUsIGV4YW1wbGUgYmFzZWQsIHZlcnkgYnJpZWYsICANCnR1dG9yaWFsLCB1c2lu ZyBjb25jcmV0ZSBjb2RlIGV4YW1wbGVzLCBzdWNoIGFzIHRoZSBhYm92ZSBvbmVzLCB3aXRoIGEg IA0Kc2xpZ2h0IGVtcGhhc2l6ZSBvbiBzeW50YXggKHNvIGZpcnN0IHRpbWVycyBnZXRzIGEgc2Vu c2Ugb2Ygd2hhdCBleGFjdGx5IHRvICANCnR5cGUpLCB3b3VsZCBiZSBhIGdyZWF0IGZpcnN0IGlu dHJvZHVjdGlvbi4gSXQnZCBoZWxwZnVsIHRvIGltcGVyYXRpdmUgIA0KcHJvZ3JhbWVycyBhcyB3 ZWxsIGFzIGZ1bmN0aW9uYWwgcHJvZ3JhbWVycyBleHBlcmllbmNlZCB3aXRoIG90aGVyICANCmZ1 bmN0aW9uYWwgbGFuZ3MuIElmIHRoaXMgaXMgYnVuZGxlZCBhbmQgc2FuY3Rpb25lZCB3aXRoIHRo ZSBvZmZpY2lhbCAgDQptYW51YWwsIGl0J2Qgb3BlbiB1cCBvY2FtbCB0byBtYW55IHBlb3BsZSB3 aG8gb3RoZXJ3aXNlIG1heSBub3QgaGF2ZSBoYWQgIA0KdGltZSB0byBzZWFyY2ggZm9yIHRoZSBy aWdodCB0dXRvcmlhbC4gKGkgaG9wZSkNCg0KWGFoDQriiJEgaHR0cDovL3hhaGxlZS5vcmcvDQoN CuKYhA0K --00163645923c523a1604667fd02b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Xavier Leroy,

On Mar 31, 2009 9:31am, Xavier Leroy <Xavier= .Leroy@inria.fr> wrote:
> One last word to you, that Xah Lee tro= ll, and anyone else on this
> list: if you're not happy with th= e existing material, write something
> better. Everyone will thank= you and you'll get to better appreciate
> the difficulty of th= e task.

although there are several good tutorials, but i think i= t is important that the bundled official tutorial should be one that is goo= d. By =E2=80=9Cgood=E2=80=9D here, i mean, it gives a simple overview of th= e syntax, and a simple overview, such as how to do arithmetic, basic types,= if then else, true false issues, a couple example of most used data types = such as list and n-tuple and records, how to define a function, how to call= a library.

Jon's, and Scott's tutorial are both in this= format and i think is very suitable:

=E2=80=A2 Ocaml for Scient= ists, by Jon Harrop, chapter 1 free:
http://www.ffconsultancy.com/prod= ucts/ocaml_for_scientists/chapter1.html

=E2=80=A2 =E2=80=9CIntro= duction to Caml=E2=80=9D by Scott Smith of Johns Hopkins U. A lecture note.=
http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html

I= only started learning OCaml, but my current notes at:
http://xahlee.= org/ocaml/ocaml_basics.html

is also in this format. I don't = know if Jon'd be willing to lend his chapter 1 to be the official bundl= ed tutorial. (would you Jon?) My guess is that Scott would easily offer his= too. (No implication that anyone should offer this, of course.)

If any official ocaml people wishes, feel free to start with mine as the b= undled tutorial. I'm sure with minor editing by you experts, it would b= e very suitable.

I'm often wrong. (^_^); But i think a simpl= e, example based, very brief, tutorial, using concrete code examples, such = as the above ones, with a slight emphasize on syntax (so first timers gets = a sense of what exactly to type), would be a great first introduction. It&#= 39;d helpful to imperative programers as well as functional programers expe= rienced with other functional langs. If this is bundled and sanctioned with= the official manual, it'd open up ocaml to many people who otherwise m= ay not have had time to search for the right tutorial. (i hope)

= Xah
=E2=88=91 http://xahlee.org/

=E2=98=84 --00163645923c523a1604667fd02b--