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 : 5518
Catégorie(s) : Algorithme
Langage sélectionné : ObjectiveCaml
Langages dispo pour ce code :
- Caml, CamlLight, ObjectiveCaml
- Voir tous les langages pour ce code snippet



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

{ASP / ASP.NET} OBJETS IMBRIQUÉES EN TABLEAU (EN VBSCRIPT OU ASP)
Simple classe VBScript imbriquée: -------------------------------- Pratique pour faire une class...

{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...