Commits

Philémon Gardet  committed 070047f

Application des correstion de la review de Mercredi.

  • Participants
  • Parent commits 6a0879d

Comments (0)

Files changed (11)

File conf/pics/history.png

Added
New image

File conf/pics/inclusionObjet.png

Old
Old image
New
New image

File conf/pics/ocaml.png

Added
New image

File conf/slides/fonctionnel.tex

 		\item Les chaines de caractères : "abcd"\\
 			~~"The " \^~"meaning of " \^~"life"
 			\item Les n-uplets : ( 1, 4.2, "abc", 4 )
+		\item Le unit : ()
 	\end{itemize}
 \end{frame}
 
 	\item Opérateur de construction:
 		\begin{lstlisting}
 		a :: []
+		1 :: 2 :: 3 :: 4 :: 5 :: []
+		"abc" :: "de" :: "f" :: "ghij" :: []
 		\end{lstlisting}
 
 	\item Concaténation (à éviter):
 	
 	\item List.rev : inverse la liste passée en paramètre.
 	
-	\item List.iter et iter2 : Application une fonction f à chacun des éléments de la liste.
+	\item List.iter : Application une fonction f à chacun des éléments de la liste.
 
-	\item List.map et map2 : Renvoie une liste des résultats par l'application d'une fonction f à chacun des éléments de la liste.
+	\item List.map : Renvoie une liste des résultats par l'application d'une fonction f à chacun des éléments de la liste.
 
 	\end{itemize}
 \end{frame}
   	\end{lstlisting}
   	\vspace{0.4cm}
   	\begin{lstlisting}
-let add x y = 
-  x + y;;
-val add : 
-  int -> int -> int = <fun>
+let add x y = x + y;;
+val add : int -> int -> int = <fun>
   	\end{lstlisting}
 \end{frame}
 
   	\framesubtitle{L'ordre supérieur}
   	Et si nous faisions des fonctions de fonctions ? 
  	\begin{lstlisting}
-  let sup f a = f a;;
-  val sup : ('a -> 'b) -> 'a -> 'b = <fun>
+  let comp f a b = f a b;;
+  val comp : ('a -> 'b -> 'c) -> 
+  'a -> 'b -> 'c = <fun>
+  
+  comp (+) 3 2;;
+  - : int = 5
  	\end{lstlisting}
 	Nous retrouvons ici le type polymorphe representé par\\
 	les 'a et 'b qui rassemblent tout les types.
 
 	 	\begin{block}{Utilisation}
 		\begin{lstlisting}
-		  incr 32
+		  incr 32;;
+		  - : int = 33
 		  incr ~step:10 32
+		  - : int = 42
 		\end{lstlisting}
 		\end{block}
 
 
   type point = int * int
 
+  let a = (3,7);;
+  val a : int * int = (3,7)
+  let (b:point) = (3,7);;
+  val b : point = (3,7)
+  
   type stringLabeledIntList = 
     string * (int list)
 
 \begin{frame}[fragile]
 	\frametitle{Créer un type}
 	\framesubtitle{Le type somme}
-	\begin{lstlisting}
-  type name =
-    | Constructor1 
-    | Constructor2 of t0 
-    | Constructor3 of t1 * t2 * tn 
-	\end{lstlisting}
-\end{frame}
-
-\begin{frame}[fragile]
-	\frametitle{Créer un type}
-	\framesubtitle{Le type somme: Application}
+	\begin{columns}
+		\begin{column}{5cm}
 			\begin{lstlisting}
-type ('element) myList =
-  | Void
-  | Element of 
-      'element * 
-      ('element myList)
+  type head =
+    | King
+    | Queen
+    | Jack
+
+  type cardFigure =
+    | Ace
+    | NumberCard of int
+    | HeadCard of head
 			\end{lstlisting}
-
+		\end{column}
+		\begin{column}{7cm}
 			\begin{lstlisting}
-let rec printStrMyList l = match l with
-    Void -> print_string "\n"
-  | Element (e,Void) -> 
-      print_string e ^ "\n"
-  | Element (e,q) -> 
-      print_string e ^ ", ";
-      printStrList q
+  type cardColor =
+    | Spade
+    | Heart
+    | Diamond
+    | Club
+  
+  type card = 
+    cardColor * cardFigure
 			\end{lstlisting}
+		\end{column}
+	\end{columns}
 \end{frame}
 
 \begin{frame}[fragile]

File conf/slides/modules.tex

 \end{frame}
 
 \begin{frame}
-	\frametitle{Un Makefile \textit{usine à gaz}}
+	\frametitle{Le travail d'un Makefile}
 	\begin{center}
-		\includegraphics[width=10cm]{pics/mkfile.png}
+		\begin{itemize}
+			\item Lister les fichiers sources
+			\item Trouver/Indiquer les chemins d'accès des bibliothèques
+			\item Indiquer les outils de compilation
+			\item Générer les fichiers correspondant à chaque étape de la compilation
+			\item Gérer les dépendances entre les modules
+		\end{itemize}
 	\end{center}
 \end{frame}
 
 	\frametitle{ocamlbuild}
 	\begin{block}{Commande générique}
 		\begin{lstlisting}
-  # ocamlbuild -use-ocamlfind\
+  42sh$ ocamlbuild -use-ocamlfind\
     -pkgs [library] [mainFile].[byte/native]
 		\end{lstlisting}
 	\end{block}
 	\begin{block}{Exemple}
 		\begin{lstlisting}
-  # ocamlbuild -use-ocamlfind -pkgs\
+  42sh$ ocamlbuild -use-ocamlfind -pkgs\
     lua,expat,sdl,sdl.sdlimage,sdl.sdlttf,str\
     main.native
 		\end{lstlisting}

File conf/slides/objet.tex

 \begin{frame}[fragile]
 	\frametitle{Initialisation}
 	\begin{lstlisting}
-class putListInQueue (l:int list) =
+class putListInStack (l:int list) =
   object (self)
     
   val data = Stack.create ()

File conf/slides/sdl.tex

 
 \begin{frame}[fragile]
 	\frametitle{Les pixels}
-	\framesubtitle{La transparence des surfaces}
-	\begin{block}{Couleur transparente}
-		\begin{lstlisting}
-  val get_color_key : surface -> int32
-  val set_color_key : surface -> ?rle:bool -> 
-    int32 -> unit
-  val unset_color_key : surface -> unit
-		\end{lstlisting}
-	\end{block}
-	\begin{block}{Transparence globale}
-		\begin{lstlisting}
-  val get_alpha : surface -> int
-  val set_alpha : surface -> ?rle:bool -> 
-    int -> unit
-  val unset_alpha : surface -> unit
-		\end{lstlisting}
-	\end{block}
-\end{frame}
-
-\begin{frame}[fragile]
-	\frametitle{Les pixels}
 	\framesubtitle{\og{}Bon ! Quand est-ce qu'on manipule des pixels ?\fg}
 	\begin{block}{Verrouillage de la surface}
 		\begin{lstlisting}

File conf/slides/struDonnees.tex

 	\begin{itemize}
 	\item Déclaration de type: 
 		\begin{lstlisting}
-		type pixel = 
-		{ 
-		   mutable r:float; 
-		   mutable g:string; 
-		   b:int;
-		} 
+		  type pixel = 
+		  { 
+		     mutable r:float; 
+		     mutable g:string; 
+		     b:int;
+		  } 
 		
-		let p = { r=2.3; 
+		let p = { r=2.4; g="The Game"; b=255 }
 		\end{lstlisting}
-	\item Modification des champs de valeur:
+	\item Accès et modification des champs de valeur:
 		\begin{lstlisting}
-			p.r <- 42.0;
-			p.g <- "The Game"
+			  p.b;;
+			  -: int = 255
+			  p.g <- "You Lose"
 		\end{lstlisting}
 	\end{itemize}
 \end{frame}
 	\begin{lstlisting}
 		  let a = ref 0
 
-		  let l = ref [];;
-	\end{lstlisting}
-	Variable de type faible :
-	\begin{lstlisting}
-		  val l : '_a list ref = {contents=[]}
 	\end{lstlisting}
 	Utilisation:
 	\begin{lstlisting}
 
 \begin{frame}[fragile]
 	\frametitle{Les vecteurs}
-	\framesubtitle{Vecteur(ception)}
-	\begin{lstlisting}
-	let t = [| 
-           [|1|];
-           [|1; 1|];
-           [|1; 2; 1|];
-           [|1; 3; 3; 1|];
-           [|1; 4; 6; 4; 1|];
-           [|1; 5; 10; 10; 5; 1|]
-         |] 
-	
-	t.(2).(0)
-	\end{lstlisting}
-\end{frame}
-
-\begin{frame}[fragile]
-	\frametitle{Les vecteurs}
 	\framesubtitle{Copie et valeurs partagées}
 	\begin{block}{Soit une copie simple}
 	\begin{lstlisting}
 
 \begin{frame}[fragile]
 	\frametitle{Les vecteurs}
-	\framesubtitle{Copie et valeurs partagées}
-	\begin{block}{Et une copie avec valeurs partagées}
-	\begin{lstlisting}
-	let v = Array.make 3 1;;
-	val v : int array = [|1; 1; 1|]
-	let m = Array.make 3 v;;
-	val m : int array array = 
-	[|[|1; 1; 1|]; [|1; 1; 1|]; [|1; 1; 1|]|]
-	let m2 = Array.copy m;;
-	val m2 : int array array = 
-	[|[|1; 1; 1|]; [|1; 1; 1|]; [|1; 1; 1|]|]
-	v.(1)<- 1337;;
-	- : unit = ()
-	m2 ;;
-	- : int array array = 
-	[|[|1; 1337; 0|]; [|1; 1337; 0|]; 
-	[|1; 1337; 0|]|]
-	\end{lstlisting}
-	\end{block}
-\end{frame}
-
-
-\begin{frame}[fragile]
-	\frametitle{Les vecteurs}
 	\framesubtitle{Autres fonctionnalitées du module Array}
 	\begin{itemize}
 	\item Array.make\_matrix

File conf/srcPics/history.xcf

Binary file added.

File conf/srcPics/inclusionObjet.xcf

Binary file modified.

File conf/srcPics/logoOcaml.xcf

Binary file added.