caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Julien ÉLIE" <julien.elie@wanadoo.fr>
To: <caml-list@inria.fr>
Subject: [Caml-list] Quelques questions sur Caml Light
Date: Tue, 15 Apr 2003 11:26:54 +0200	[thread overview]
Message-ID: <001701c30331$28977040$0c1ffdc1@julien> (raw)

Bonjour,

I read that messages could be written either in
French or in English. However, if you want me to
translate it into English or to write in English,
I shall do it. You can also answer in English
if you prefer.

J'utilise la version 0.74 de Caml Light.

J'ai plusieurs questions que je collige sur ce
langage depuis quelque temps. Je vous remercie
par avance pour vos réponses et j'espère que
vous ne m'en voudrez pas pour autant de questions
en un seul message.


1°) Pourquoi n'est-il pas possible de filtrer
avec des motifs qui sont des tableaux ?

let filtre = function
    [||] -> 0
  | _ -> 1;;

est par exemple refusé syntaxiquement par Caml Light
(mais pas par Objective Caml).
Qu'est-ce qui ne convient pas ?
(bien sûr, on peut remplacer le premier motif par
« tab when vect_lenght tab = 0 », mais je ne puis
pas filtrer par exemple [|3;5;8|] ou tout autre tableau
pour autant : une garde est alors nécessaire).



2°) Toujours dans les reconnaissances de motifs, est-il possible
de reconnaître un nombre important de nombres ?
L'utilisation de :
let f = function `0`..`9` -> 0;;
n'est pas très satisfaisante puisque c'est une fonction
« char -> int ».

Comment faire une reconnaissance de 0 à 9 en nombres entiers ?
du type :
let f = function 0|1|2|3|4|5|6|7|8|9 -> 0;;

Peut-être n'est-ce pas faisable dans une telle construction
(il faut alors retourner au « if »).



3°) Pourquoi est-il indiqué dans la documentation :

« value prefix + : float -> float -> float
value prefix +. : float -> float -> float
value add_float : float -> float -> float 
Addition. »

Je suis d'accord pour « prefix +. » et « add_float »
mais pourquoi la première ligne définissant « prefix + »
alors que c'est une fonction « int -> int -> int » ?
Elle ne fonctionne pas sur des flottants...



4°) Quelle est la technique pour manipuler avec des
nombres binaires les préfixes « lor », « land », « lxor »
et la fonction « lnot » ?
J'aimerais en fait faire :
« 0b111 lor 0b1010;; » et obtenir « 0b1111 »
(et non 15 en décimal)
N'existe-t-il pas une fonction prédéfinie pour changer
la base d'un nombre ?



5°) N'est-il pas possible de définir une exception qui
prend en charge plusieurs paramètres ?
Le mieux que je puisse faire est :
« exception erreur of int*int;; »
pour avoir deux entiers, mais c'est sous forme de paire.



6°) Comment fonctionnent les deux fonctions :
format_int : string -> int -> string
format_float : string -> float -> string

Je ne suis pas arrivé à les trouver dans le code source
(modules int/float).



7°) À quoi sert la fonction « random__full_init » ?
J'ai beau modifier la valeur donnée au « seed »,
j'obtiens toujours la même séquence de nombres...

random__full_init [|3;6|];;
for i = 1 to 100 do
  print_int (random__int 1000);
  print_string " ";
done;;

renvoie les mêmes nombres que si j'avais auparavant fait :
random__full_init [|5150;615|];;
ou encore :
random__full_init [|3;6;5;4;8;1;4;2;52;61|];;

Je ne comprends pas très bien ce qui se passe...



8°) Où se procurer la version 0.75 précompilée de
Caml Light pour Windows ?
Elle est disponible pour Unix, mais pas pour Windows...
À ce propos, quelles sont les nouveautés de la version 0.75
par rapport à la version précédente 0.74 ?
Le fichier « Changes » ne précise rien.


Merci d'avance pour toutes vos réponses.

Cordialement,

Julien ÉLIE

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


             reply	other threads:[~2003-04-15  9:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-15  9:26 Julien ÉLIE [this message]
2003-04-15 12:26 ` Damien Doligez
     [not found] <010601c334d8$1c8d52f0$7115c7c2@inrialpes.fr>
2003-06-17 14:10 ` Jean-Baptiste Rouquier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='001701c30331$28977040$0c1ffdc1@julien' \
    --to=julien.elie@wanadoo.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).