Les Snippets

Connexion

structure lazy

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 04/12/2008 15:29:06 et initié par coucou747 [Liste]
Vue : 2102
Catégorie(s) : Algorithme
Langages dispo pour ce code :
- Caml, CamlLight, ObjectiveCaml



Langage : Caml , ObjectiveCaml , CamlLight
Date ajout : 04/12/2008
Posté par coucou747 [Liste]
(* option -rectypes requise *)
type 'a delayed = unit -> 'a;;
type 'a stream = 'a option * ( ('a stream ) delayed);;
let rec nullstream = (None, fun () -> nullstream ) ;;
let rec print_stream = function
| (None, f) -> ()
| (Some a, f) -> let _ = print_int a in let _ = print_string "\n" in (print_stream (f () ) );;
let rec stream_constant v = (Some v, fun () -> stream_constant v);;
let rec stream_enum a b = if a = b
  then (Some a, fun () -> nullstream)
  else (Some a, fun () -> stream_enum (a+1) b);;
let stream_sum s=
  let rec f acc = function
  | (None, fu) -> (None, fu)
  | (Some i, fu) -> let s = i + acc in (Some s, fun () -> f s (fu () ))
  in f 0 s;;
(* print_stream (stream_sum (stream_enum 1 19));; *)
let rec stream_map f = function
| (None, fu) -> (None, fu)
| (Some i, fu) -> (Some (f i), fun () -> stream_map f (fu ()) );;
(* print_stream (stream_map (fun a -> a*2) (stream_enum 1 10));; *)



Snippets en rapport avec : Structure, Lazy, Paraisseux



Codes sources en rapport avec : Structure, Lazy, Paraisseux

{C / C++ / C++.NET} JEU DES PETIT CHEVAUX
un jeux simple dans le terminal fais sous linux (non testé sous windows) un bon exemple d'enregistr...

{Visual Basic, VB6, VB.NET, VB 2005} MENU JEU DE COMBAT EN VB.NET
Voici la structure d'un menu de jeu de combat pour 6 joueurs. Le son (du jeu Mortal Kombat) est la ...

{C / C++ / C++.NET} STRUCTURE DES FICHIERS DBF
Pour chaque fichier DBF existant dans le dossier courrant, le programme fait un autre fichier, ayant...

{C / C++ / C++.NET} ENSEMBLE DISJOINT
Cette source traite la représentation des ensembles dijoints, elle contient les fonctionnalités de b...

{C / C++ / C++.NET} FILE DE PRIORITÉ DYNAMIQUE
File de priorité dynamique , avec les opérations de base. FilePrioDyn(TYPE[],int); // le constr...

{Visual Basic, VB6, VB.NET, VB 2005} ECRIRE OU LIRE UNE STRUCTURE DANS UN FICHIER BINAIRE
J'ai cherché un peu mais à ce qu'il me semble, si on souhaite enregistrer une structure dans un fich...

{C / C++ / C++.NET} CALCULER NOMBRE DE MERSENNE AVEC BIBLIOTHÈQUE DE GESTION DE GRANDS NOMBRES
Un nombre premier de Mersenne est un nombre premier s'écrivant sous la forme 2^p - 1, p étant premie...

{C / C++ / C++.NET} MOTUS/SUPERCON.H
"Remake" du celebrissime jeu MOTUS en mode console embelli par la bibliotheque "supercon.h". Ce p...

{C# / C#.NET} XML LOADER
Ce petit programme permet de charger un fichier XML, en affichant sa structure dans un TreeView et s...

{Visual Basic, VB6, VB.NET, VB 2005} STRUCTURE MATRICE : SURCHARGE DES OPÉRATEURS POUR LE CALCUL MATRICIEL, INVERSION TRACE DÉTERMINANT ET AUTRES OPÉRATIONS
Ce code est très largement inspiré de celui de US_30 posté il y a quelques jours ( http://www.vbfran...