From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by margaux.inria.fr, Tue, 6 Oct 92 11:26:58 +0100 Received: by margaux.inria.fr, Tue, 6 Oct 92 10:59:17 +0100 Subject: Re: evaluation paresseuse en Caml-Light To: rbrena@mtecv2.mty.itesm.mx (Ramon Brena) Date: Tue, 6 Oct 92 10:59:15 MET Cc: caml-light@margaux In-Reply-To: <9210051949.AA05161@mtecv2.mty.itesm.mx>; from "Ramon Brena" at Oct 5, 92 1:49 pm Message-Id: <9209300722.AA26982@concorde.inria.fr> From: Michel.Mauny@inria.fr (Michel Mauny) Reply-To: Michel.Mauny@inria.fr Organization: INRIA, BP 105, F-78153 Le Chesnay Cedex, France Phone: (+33) 1 39 63 57 96 -- Fax: (+33) 1 39 63 53 30 Sender: weis@margaux > Je suis un professeur d'informatique dans une universite privee au nord du > Mexique [...] > mais je me demande s'il [Caml-Light] pourrait etre le langage > principal des deux cours de > langages, au lieu de Scheme, que nous utilisons a l'heure actuelle. Bien su^r! Nous vous encourageons a` utiliser Caml-Light comme support principal de vos cours. > Une limitation apparente de caml-light est qu'il n'offre aucune forme > d'evaluation paresseuse. A-t-il peut-etre au moins un equivalent de la > fonction "delay" de Scheme, qui returne des promesses d'evaluation au lieu > d'evaluer tout de suite les arguments ? Il y a bien une forme d'e'valuation paresseuse, mais elle n'est guere pedagogique. L'e'valuation paresseuse apparai^t dans les ``streams'': les e'lements de streams ainsi que les streams que l'on concate`te ne sont e'valule's que lorsque cela est ne'cessaire. Mais les streams ont un autre aspect particulier: les e'le'ments en sont physiquement retire's lors qu'on les filtre avec succe`s. La raison de ce comportement est qu'il permet de conside'rer les entre'es-sorties standard comme des streams (ou, au moins, comme pouvant s'interfacer aise'ment aux streams). L'utilisation des streams comme mode`le d'e'valuation paresseuse me parai^t donc de'conseille'e. Une autre solution (classique, mais peu e'le'gante) consiste a` coder l'e'valuation paresseuse (les suspensions, ou ``promesses'') a` l'aide de fonctions (assurant la paresse) et des re'fe'rences (ou enregistrements mutables) afin d'assurer que les e'valuations de suspensions soient mises a` jour de`s la premie`re e'valuations. Par contre, des proble`mes de typage peuvent apparai^tre dans le cas de suspensions polymorphes. > [...] > Par ailleurs, je vous felicite pour l'enthousiasme que vous montrez en > faisant du groupe caml-light un des plus actifs qu'il soit. Merci! Cordialement, Michel Mauny [ Note du mode'rateur: L'e'valuation paresseuse existe en Caml V3.1 et rien ne s'oppose a` son implantation en Caml Light, si ce n'est l'axiome de base de l'implantation: rester le plus simple et compact possible pour pouvoir e^tre porte' facilement sur un grand nombre de machines me^me les petites ... ]