From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr 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 368917F736 for ; Wed, 16 Sep 2015 21:03:45 +0200 (CEST) IronPort-PHdr: 9a23:8SgE6hSoTcX/e3fgji8o1IGCvNpsv+yvbD5Q0YIujvd0So/mwa64YhCN2/xhgRfzUJnB7Loc0qyN4/ymAz1LuM3c+Fk5M7VyFDY9wf0MmAIhBMPXQWbaF9XNKxIAIcJZSVV+9Gu6O0UGUOz3ZlnVv2HgpWVKQka3CwN5K6zPF5LIiIzvjqbpq8GVOVQD3WHgKZpJbzyI7izp/vEMhoVjLqtjgjDomVBvP9ps+GVzOFiIlAz97MrjtLRq8iBXpu5zv5UYCfayLOwESul8ATMgOno544XPvBbeSwLH3GYdQC1Clx1EBwbCxB7/V5b19CD9s7wu9jOdOJjZQKo4EQ++6KNzTRbujm9TNjg390nYh9Z8yblHpxa5ohV5xcjYbdfGZ7JFYqrBcIZCFiJ6VcFLWnkZDw== Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=info@gerd-stolpmann.de; spf=None smtp.mailfrom=info@gerd-stolpmann.de; spf=None smtp.helo=postmaster@mout.kundenserver.de Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=pra; client-ip=212.227.17.13; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of info@gerd-stolpmann.de) identity=mailfrom; client-ip=212.227.17.13; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="info@gerd-stolpmann.de"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.kundenserver.de) identity=helo; client-ip=212.227.17.13; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="info@gerd-stolpmann.de"; x-sender="postmaster@mout.kundenserver.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CIAQDGu/lVnA0R49REGoN3abQPGYsHCoV5AoFIPBABAQEBAQEBARABAQEBAQYNCQkhLoIdggcBAQMBIwQuJBALQgICVwYTCYgdDAk7tHGUPAEBAQEBBQEBAQEehXiFeIRnJgeCLgwvEoExBYczjit8AoQSigeGaQSSETiELm8BiikBAQE X-IPAS-Result: A0CIAQDGu/lVnA0R49REGoN3abQPGYsHCoV5AoFIPBABAQEBAQEBARABAQEBAQYNCQkhLoIdggcBAQMBIwQuJBALQgICVwYTCYgdDAk7tHGUPAEBAQEBBQEBAQEehXiFeIRnJgeCLgwvEoExBYczjit8AoQSigeGaQSSETiELm8BiikBAQE X-IronPort-AV: E=Sophos;i="5.17,541,1437429600"; d="asc'?scan'208";a="177931149" Received: from mout.kundenserver.de ([212.227.17.13]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Sep 2015 21:03:44 +0200 Received: from office1.lan.sumadev.de ([88.69.138.237]) by mrelayeu.kundenserver.de (mreue102) with ESMTPSA (Nemesis) id 0M8zUb-1ZS4Bu1PS9-00CNPg; Wed, 16 Sep 2015 21:03:43 +0200 Received: from [192.168.65.22] (office6.fritz.box [192.168.65.22]) by office1.lan.sumadev.de (Postfix) with ESMTPSA id 4A8CADC05D; Wed, 16 Sep 2015 21:03:42 +0200 (CEST) Message-ID: <1442430218.21446.2.camel@zotac> From: Gerd Stolpmann To: Leonardo Laguna Ruiz Cc: "caml-list@inria.fr" Date: Wed, 16 Sep 2015 21:03:38 +0200 In-Reply-To: <55F95E5E.6000209@gmail.com> References: <55F95E5E.6000209@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-GYcX5O1o/RwAtTodChz+" X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 X-Provags-ID: V03:K0:OohJq2M9KOklFFz7tYHDcjRu7GFSC29j0Iap1d56BxX7X0I19po 2Ov29xdpYn5MxPnGTqtmGpdbGgIwfWqH3G6I1Z4IkGEmfm02YKZZImMmkkex+NaLs18LUrT QnAbG+WoI3Uxe7WoXajCGbkcg4cYequIE/bwu0WgMcS1wt0PgNn+rb4m4v2xTyFlEAME4D+ dsczWUshVx1wFX+m9EEqA== X-UI-Out-Filterresults: notjunk:1;V01:K0:r94J1WHVAh0=:tsse82Jnyjz8ox6q4ddo/8 KSZDZ6Uvbdf/bxOFG2MPCr2Q0LSfQSdhma2Xqn2kd/Ivx0j6X6EcEyQVa4rtJAHgVCy2KzYwZ 7O3OKuvANBg23tZ4PtVgWy9Se0SJW2PnYcWTP4p7cNTUI0iPEUq92ZarWIAT3PcbEwmltGSrp 4zaN7ABcElrCgJ80EUIwS2Yxi//7ci0+0wPO/YXgQSATnmAnl9O26Xj2RpiSLLIM9YFihUPJb gYt5aH3OgBi9NIj2iZlZRgVcg4A3itkeQyax44Pzhmi0jrGyBd/MNEkKAf20hdYjD/58Ehvbm Om3MgzkGwL2hggMNEnRb5l3z1kSPM85onu+vXGb+F9HtDiMyIXFX7JkwDz9UWM9NO2nmdcuMO +raacNpFlHl2p01XXCbJ8t3TojwBievSigUumy2H/4bYczLkRZ6xGQPQHbdF+o/DYk+o4MzMG OPba3GCRvHGoNNLt9QC/MC9QA9wsG/l3ELdBDngOX2tN4zxF2giEtgnqutEl2eToff/paxsXA zRew+MotzerSvMQM1iU4XtKvfdmtk81Md/BNMwKHAgMUsf5tOsHpzPzdbDcU8IVjP7G1meFIi Nx533Pybnzgzmjv0nLHf6f1P0Xd5klTuzUItzJ+Hj4356uoLveIrPvoA/pf0Xe4mB3CihuWgq Hg/gpu+/qxqIYKsMnDpZ0xPVadzxxDapg2aSGhyC5Xz9XStTXNCaxvUVMXh2zcu3JfpQ= Subject: Re: [Caml-list] Pattern matching of records --=-GYcX5O1o/RwAtTodChz+ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Am Mittwoch, den 16.09.2015, 14:19 +0200 schrieb Leonardo Laguna Ruiz: > I have the following type >=20 > (* File: S.ml *) > module S =3D struct > type s =3D > { > a : int; > b : int; > } > end >=20 >=20 > I I have found that for creating records I can do as follows: >=20 > (* File: main.ml *) > open S > let s0 =3D S.{ a =3D 0; b =3D 0} >=20 >=20 > However this does not work for pattern matching: >=20 > (* this does not work *) > match s0 with > | S.{ a =3D 0 ; b =3D 0 } -> true > | _ -> false You are thinking the right way, but you run into a well-known shortcoming: http://caml.inria.fr/mantis/view.php?id=3D6656 Gerd >=20 >=20 > These two alternatives work, but one with a warning and the other=20 > (depending on the type) is too verbose: >=20 > (* this produces a warning *) > match s0 with > | { a =3D 0 ; b =3D 0 } -> true > | _ -> false >=20 > (* this works *) > match s0 with > | { S.a =3D 0 ; S.b =3D 0 } -> true > | _ -> false >=20 >=20 > Is there any other way of writing pattern matches as compact as S.{ a =3D= =20 > 0 ; b =3D 0 } ? (which is consistent to the construction of the same valu= e) >=20 > I know that it's possible to do: >=20 > let open S in > match s0 with > | { a =3D 0 ; b =3D 0 } -> true > | _ -> false >=20 > but the main reason I don't do it is because I have more records like: >=20 > match s0,k0 with > | { S.a =3D 0 }, {K.a =3D 0 } -> true >=20 >=20 >=20 > Best regards, >=20 > Leonardo >=20 >=20 >=20 --=20 ------------------------------------------------------------ Gerd Stolpmann, Darmstadt, Germany gerd@gerd-stolpmann.de My OCaml site: http://www.camlcity.org Contact details: http://www.camlcity.org/contact.html Company homepage: http://www.gerd-stolpmann.de ------------------------------------------------------------ --=-GYcX5O1o/RwAtTodChz+ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJV+b0KAAoJEAaM4b9ZLB5TI/wH/RcLA/rYIUI7jIEuDzbnZ8jS ZUWzjLeqvqunElGYHYSWyXUK49wR+3Yr2plM4Qb6UZwRHMXuSsL5NbZ24Xgd9lJ8 zDS1HHeh9WgRZaATM5Zu2PiW/nZqJyOZxX2AieM654OmFR+L98NPVKeoYwAOqLF+ gvzVOJwvvLNNVLmEoxaN11SWAI28fbgI/AeGFYLdeIgT2lRNs5lg2JAZfpVJt+J9 zXqOVB4h+Y/lgQS/ic7VLL+ifZiUW1uuJxpBLBhbKhuFuMJ+NaGu+g+xxklFBMKo 6SZ1L4VFhoelLrvYneBWuFQBzobCZPDtpMdPxK5GU26IOdeg6o78ii7VfTuT4Y8= =OFff -----END PGP SIGNATURE----- --=-GYcX5O1o/RwAtTodChz+--