39 votes

Imprimer une liste dans OCaml

Je veux faire quelque chose d'aussi simple que ça :

Imprimez une liste.

let a = [1;2;3;4;5]

Comment puis-je imprimer cette liste en sortie standard ?

61voto

Ashish Agarwal Points 1573

Vous devriez vous familiariser avec les fonctions List.iter et List.map. Ils sont essentiels pour la programmation en OCaml. Si vous vous sentez également à l'aise avec le module Printf, vous pouvez écrire :

open Printf
let a = [1;2;3;4;5]
let () = List.iter (printf "%d ") a

J'ouvre Printf dans la plupart de mon code parce que j'utilise les fonctions qu'il contient si souvent. Sans cela, vous devrez écrire Printf.printf la dernière ligne. En outre, si vous travaillez dans la boucle supérieure, n'oubliez pas de terminer les déclarations ci-dessus avec des points-virgules doubles.

35voto

Ackar Points 891

Vous pouvez le faire avec une simple récursion :

let rec print_list = function 
[] -> ()
| e::l -> print_int e ; print_string " " ; print_list l

La tête de la liste est imprimée, puis vous faites un appel récursif sur la queue de la liste.

28voto

Fabrice Le Fessant Points 2998
print_string (String.concat " " (List.map string_of_int list))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X