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=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 mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 8DE5EBBAF for ; Sun, 6 Sep 2009 09:41:10 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8BAPMDo0rRVdK2kGdsb2JhbACRfoh/PwEBAQEJCQwHEwOqQoEnjnkBAwIEhBQFgVRiEA X-IronPort-AV: E=Sophos;i="4.44,341,1249250400"; d="scan'208";a="35560589" Received: from mail-yx0-f182.google.com ([209.85.210.182]) by mail1-smtp-roc.national.inria.fr with ESMTP; 06 Sep 2009 09:41:10 +0200 Received: by yxe12 with SMTP id 12so4350804yxe.1 for ; Sun, 06 Sep 2009 00:41:09 -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=YLpcXrNY0P0HWTcXBcwNv/tiazJrSkj4DEAagc3XHD36PmIrG2rnLFws8GB29sBlvE WVi+5BCrtOqrUBF5+ijvdjc3mXRoTLuXHQpz26267AXkIdeH0yzL+x4sraFaiu8zOyJx bAAlmR0BfCzvzgJi1WsNuBl9I3H9NR+GJNcLc= 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=FBMbrQishfH0nykoO+3b1kyXYOaxvKAhCkqeKwf0Q8Et0grm7Zk5ht20hfEIsEuW5F AZEEWk3DGMgiX0qQDersn9Km5mXuypbF19W/b/S9govQVYuhhriyc84mIeC1LMb8KyNe YaXcndn/Ism2HJAR6e1pBq70noBv+me8Z395I= MIME-Version: 1.0 Received: by 10.101.85.10 with SMTP id n10mr14084517anl.156.1252222869276; Sun, 06 Sep 2009 00:41:09 -0700 (PDT) In-Reply-To: <367461252186926@webmail120.yandex.ru> References: <367461252186926@webmail120.yandex.ru> Date: Sun, 6 Sep 2009 10:41:09 +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.