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=2.8 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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 415C7BBAF for ; Sun, 6 Sep 2009 09:49:53 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8BAAAHo0rRVdK2kGdsb2JhbACRfoh/PwEBAQEJCQwHEwOqOIEnjnsBAwIEhBQFgVRiEA X-IronPort-AV: E=Sophos;i="4.44,341,1249250400"; d="scan'208";a="33789492" Received: from mail-yx0-f182.google.com ([209.85.210.182]) by mail3-smtp-sop.national.inria.fr with ESMTP; 06 Sep 2009 09:49:24 +0200 Received: by yxe12 with SMTP id 12so4352878yxe.1 for ; Sun, 06 Sep 2009 00:49:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=PDFaSySsDjYaMP7VExyH6YDv9peYUuHLmnBNVqu3krw=; b=Yxa3llArqvYYkGYOS0YQswffk3L/eyHbwz2APicmhL8otefmptlIEA5wq8xp9xqilm U9sccrU4srLUGyYrx4xZhnf+Y+HPi1Cg/DR7amWSGvuqNDux7Jblcxd3moM67c5lIlbw CThJpTqd7ouyw62bI9Rqjxlbj4UBBj0si1bIo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=k8fagpFcR2dfy7jSoT1cDv3AtU54lHhkdrCt3ox6G+cNlDJ9rSVcymp2IQRpqTlk8j IhI6HOi+eJokMQ5U+7/qK6TB6yQo2Ao/GD95bXiA3P5mUuuQi0VF4GnXLhHfj2+8ALRN lbElZ6IqUlkpeXVzVrZsKQMrtBupt2LTpdC1M= MIME-Version: 1.0 Received: by 10.101.88.14 with SMTP id q14mr14156290anl.38.1252223363516; Sun, 06 Sep 2009 00:49:23 -0700 (PDT) In-Reply-To: <367461252186926@webmail120.yandex.ru> References: <367461252186926@webmail120.yandex.ru> Date: Sun, 6 Sep 2009 10:49:23 +0300 Message-ID: Subject: Re: [Caml-list] Camomile library tutorial/examples? From: dmitry grebeniuk To: Morozov Matvey Cc: caml-list@yquem.inria.fr Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; camomile:01 grebeniuk:01 lowercase:01 camomile:01 lowercase:01 printf:01 pref:01 pref:01 printf:01 stdin:01 ocamlfind:01 ocamlc:01 -package:01 -linkpkg:01 ocaml:01 > Recently I tried to add some unicode support to my project (for instance I need to convert Cyrillic characters from uppercase to lowercase and vice versa). I don't know of any good documentation on Camomile, but here is a code that converts line from terminal to uppercase and lowercase, assuming that your terminal's encoding is utf8. ===== camotest.ml ===== open Printf module PREF = CamomileLibrary.Default.Camomile module CE = PREF.CharEncoding module CM = PREF.CaseMap.Make(PREF.UTF8) let _ = try while true do printf "> %!"; let line = input_line stdin in let up = CM.uppercase line and low = CM.lowercase line in printf "ORIG : %s\nUPPER: %s\nLOWER: %s\n%!" line up low done with | End_of_file -> () ===== / camotest.ml ===== $ ocamlfind ocamlc -package camomile -linkpkg camotest.ml -o camotest $ ./camotest btw, if you speak russian (as I can guess), you can join the jabber conference ocaml@conference.jabber.ru , some questions are solved faster than via mail-lists.