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=1.6 required=5.0 tests=AWL,DNS_FROM_RFC_POST, 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 A82F5BBAF for ; Mon, 21 Jul 2008 23:28:38 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnMAAHychEjRVcisfGdsb2JhbACSBUMBAQsDBAYHEQOXVIRl X-IronPort-AV: E=Sophos;i="4.31,225,1215381600"; d="scan'208";a="27547999" Received: from wf-out-1314.google.com ([209.85.200.172]) by mail4-smtp-sop.national.inria.fr with ESMTP; 21 Jul 2008 23:28:37 +0200 Received: by wf-out-1314.google.com with SMTP id 24so1253076wfg.15 for ; Mon, 21 Jul 2008 14:28:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=QLoeK/9CzcxZFE9Jg28cdEqM1OEBBngx//+kJFYfzu4=; b=XwA0j3heqMyEMYAcFa02Nxfx9t9a9Ree+yvug/tRRXFqj70kxdJFMiYf9/K6JrXZ0H /QIhxS9nLK+KszaYQpuEfB+3+vXsyjW1CpZnh93QyGETzN16B48hZH3KyrtbQwY6KEil apFyExXDualonFTRaDfJthqogrbIek/C4Cowg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=Qf3ULwJVOIE4JHtzH6xOuZCdYC5GxSYCEBUhucDyxHXDpXTrx/+P9edAGETqVqQZ3z KoH27AhHw+yKq9V88x1ejcMGqGJ/gIRty8aC1ujxpExde10QnL5hPYw9NRNwXh6ZIjjK ppzzHqI3hDAfXEEscTs7Fa5LtCe6cBpL2LKtY= Received: by 10.142.88.4 with SMTP id l4mr1525963wfb.238.1216675716251; Mon, 21 Jul 2008 14:28:36 -0700 (PDT) Received: by 10.143.19.18 with HTTP; Mon, 21 Jul 2008 14:28:36 -0700 (PDT) Message-ID: <4b5157c30807211428r19ef9865n6a65e81ac2f5fe31@mail.gmail.com> Date: Mon, 21 Jul 2008 23:28:36 +0200 From: "Paolo Donadeo" To: "caml-list caml-list" Subject: Disappointment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Spam: no; 0.00; monads:01 monads:01 vaguely:01 haskell:01 wikipedia:01 wiki:01 univ-orleans:01 lifo:01 aroused:98 blog:98 wrote:01 arnaud:01 abstract:01 strings:01 algorithm:01 I'm disappointed with myself and my incredibly low IQ. Late this evening I decided -- and this is the third time -- to be enlightened by the concept of monad. I like functional programming, but monads [1] must be too little to be grabbed by my mind. This time the interest in monads was aroused by the interesting article of David Teller, Arnaud Spiwack and Till Varoquaux [2] about the error monad, but for using the library they wrote I need at least some knowledge about monads and the do-notation. I tried with some tutorials found around, but I still cannot catch the point: what the hell is a monad? I ask you all: can anyone make me a practical example, something involving strings, files, the network, an image or sound processing algorithm, something vaguely real? Not abstract mathematical structures, beautiful algebraic properties and general statements, please: the net is full of such tutorials, especially Haskell fan sites ;-) Thanks in advance for your patience. [1] http://en.wikipedia.org/wiki/Monad_(symbol) [2] http://www.univ-orleans.fr/lifo/Members/David.Teller/publications/ml2008.pdf -- Ing. Paolo Donadeo Studio Associato 4Sigma Website: http://www.4sigma.it Personal website: http://www.donadeo.net/blog ~ ~ :wq