Rafael Gozlan avatar Rafael Gozlan committed 037d4c0

Review totale des 2 premières parties (à voir si j'ai pas laissé trainer des conneries)

Comments (0)

Files changed (3)

conf/slides/fonctionnel.tex

 	\begin{block}{La structure}
 	\begin{lstlisting}
 	let f a b c = 
-	if a
-	then b 
-	else c
+	  if a
+	   then b 
+	   else c
 	bool -> 'a -> 'a -> 'a
 	\end{lstlisting}
 	\end{block}
 	\end{block}
 \end{frame}
 
-\begin{frame}
-    \frametitle{Les tests boolèen}
-	\begin{center}
-		\begin{center}
-			\begin{minipage}{4cm}
-				\begin{itemize}
-					\item "not" : négation
-					\item "\&\&" : et logique
-					\item "||" : ou logique
-				\end{itemize}
-			\end{minipage}
-			\begin{minipage}{5cm}
-				\begin{itemize}
-					\item "=" : egalité structurelle
-					\item "<>" : negation de "="
-				\end{itemize}
-			\end{minipage}
-		\end{center}\vspace{0.2cm}
-		\begin{minipage}{4.5cm}
+\begin{frame}[fragile]
+    \frametitle{Les tests booléens}
+	\begin{columns}
+		\begin{column}{5cm}
+			\begin{itemize}
+				\item "not" : négation
+				\item "\&\&" : et logique
+				\item "||" : ou logique
+				\item "=" : egalité structurelle
+				\item "<>" : negation de "="
+			\end{itemize}
+		\end{column}
+		\begin{column}{5cm}
 			\begin{itemize}
 				\item "<" : inferieur 
 				\item ">" : superieur
 				\item "<=" : inferieur égale
 				\item ">=" : superieur égale
 			\end{itemize}
-		\end{minipage}
-	\end{center}
+		\end{column}
+	\end{columns}
 \end{frame}
 
 \begin{frame}[fragile]
 	\frametitle{Le filtrage de motif}
-	\begin{center}
-	\begin{minipage}{4cm}
+	\framesubtitle{Généralités}
+	\begin{block}{Expression générale}
 		\begin{lstlisting}
 match expr with
    m1 -> expr1
  | m2 -> expr2
  | pn -> exprn
 		\end{lstlisting}
-	\end{minipage}
-	\begin{minipage}{5cm}
+	\end{block}
+	\begin{block}{Exemples}
+		\begin{columns}
+		\begin{column}{5cm}
 		\begin{lstlisting}
 match i with
    0 -> expr1
  | 5 | 12 -> expr2
- | n -> expr4
+ | n -> exprn
 		\end{lstlisting}
-	\end{minipage}
-	
-	\begin{minipage}{3cm}
+		\end{column}
+		\begin{column}{5cm}
 		\begin{lstlisting}
 function
     42 -> true
   | _ -> false
 		\end{lstlisting} 
-	\end{minipage}
-	\end{center}
+		\end{column}
+	\end{columns}
+	\end{block}
 \end{frame}
 
 \begin{frame}[fragile]
-	\frametitle{Le filtrage de motif : récursion et listes}
+	\frametitle{Le filtrage dei motif}
+	\framesubtitle{Récursion et listes}
 		\begin{lstlisting}
 let rec printStrList l = match l with
     [] -> print_string "\n"
-  | e::[] -> print_string e ^ "\n"
+  | e::[] -> print_string (e ^ "\n")
   | e::q -> 
-    print_string e ^ ", ";
+    print_string(e ^ ", ");
     printStrList q
 		\end{lstlisting}
 \end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{Le filtrage de motif : as et when}
-  \begin{itemize}
-  \begin{minipage}[t]{5cm}
-  \item
-    as :
+  \frametitle{Le filtrage de motif}
+	\framesubtitle{as et when}
+  \begin{block}{as:}
     \begin{lstlisting}
 	let rec fibo = function 
  	  0 | 1 as n -> n 
  	| x -> fibo(x - 1) + fibo(x - 2);; 
     \end{lstlisting}
-  \end{minipage}
-  \begin{minipage}[t]{5cm}
-  \item
-    when :
+  \end{block}
+  \begin{block}{when:}
     \begin{lstlisting}
   let is_inf = function 
       x when x < 42 -> true
  	  | _ -> false;;
     \end{lstlisting}
-  \end{minipage}
-  \end{itemize}
+  \end{block}
 \end{frame}
 
 \subsection{Les types} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}[fragile]
 	\frametitle{Créer un type}
-	\textbf{types simples}
+	\framesubtitle{Types simples}
 	\begin{lstlisting}
-  type name = typedef
+  type name = typeToDefine
 
   type point = int * int
+
   type stringLabeledIntList = 
     string * (int list)
+
   type funIntList = (int list) -> int
 	\end{lstlisting}
-	\textbf{types paramétrés}
-	\lstset{basicstyle=\scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+	\frametitle{Créer un type}
+	\framesubtitle{Types paramétrés}
 	\begin{lstlisting}
-  type ('nameTypeParameter1,'nameTypeParameterN) name = 
-    typedef
+  type ('nameTypeParameter1,
+ 	     'nameTypeParameterN) 
+   	    name = 
+         typeToDefine
     
   type ('label,'valType) labeledList =
     'label * ('valType list) 
 	\end{lstlisting}
 \end{frame}
 
+
 \begin{frame}[fragile]
-	\frametitle{Le type somme}
+	\frametitle{Créer un type}
+	\framesubtitle{Le type somme}
 	\begin{lstlisting}
   type name =
     | Constructor1 
     | Constructor2 of t0 
     | Constructor3 of t1 * t2 * tn 
 	\end{lstlisting}
-	
-	\begin{center}
-		\begin{minipage}{4.3cm}
-			\lstset{basicstyle=\scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+	\frametitle{Créer un type}
+	\framesubtitle{Le type somme: Application}
 			\begin{lstlisting}
 type ('element) myList =
   | Void
     'element * 
     ('element myList)
 			\end{lstlisting}
-		\end{minipage}\\
-		\begin{minipage}{7.3cm}
-			\lstset{basicstyle=\scriptsize}
+
 			\begin{lstlisting}
 let rec printStrMyList l = match l with
     Void -> print_string "\n"
     print_string e ^ ", ";
     printStrList q
 			\end{lstlisting}
-		\end{minipage}
-	\end{center}
 \end{frame}
 
 \begin{frame}[fragile]

conf/slides/imperatif.tex

 %\end{frame}
 
 \begin{frame}[fragile]
-  \frametitle{le sequencage}
-  separer des expressions :
+  \frametitle{Le sequençage}
+  \begin{block}{Séparer des expressions}
   \begin{lstlisting}
   expr1;...;expr2
   \end{lstlisting}
-  faire des "blocs" de code :
+ \end{block}
+  \begin{block}{Faire des "blocs" de code}
   \begin{lstlisting}
   begin
     expr1; 
     exprn
   end
   \end{lstlisting}
+ \end{block}
 \end{frame}
 
 \begin{frame}[fragile]
-    \frametitle{les boucles}
-    \begin{itemize}
-      \item
-	la boucle for :
+    \frametitle{Les boucles}
+    \begin{block}{La boucle for}
 	\begin{lstlisting}
 	for nom = expr1 to expr2 do 
 	expr3
 	expr3
 	done
 	\end{lstlisting}
-      \item
-	la boucle while :
+      \end{block}
+	\begin{block}{La boucle while}
 	\begin{lstlisting}
 	while expr1 < expr2 do
 	expr3
 	done
       \end{lstlisting}
-  \end{itemize}
+  \end{block}
 \end{frame}

conf/slides/struDonnees.tex

 	\item Déclaration de type: 
 		\begin{lstlisting}
 		type pixel = 
-		{ mutable  r:int ; mutable g:string 
+		{ mutable  r:float ; mutable g:string 
 		; b:int } 
 		\end{lstlisting}
 		Un champ mutable signifie qu'il peut être modifié.
 \begin{frame}[fragile]
 	\frametitle{Les références}
 	Une référence est considéré comme l'équivalent (selon l'INRIA) des pointeurs en OCaml.
-	\begin{lstlisting}
-		type 'a ref = {mutable contents:'a}
-	\end{lstlisting}
 	Déclaration:
 	\begin{lstlisting}
 		let a = ref 0
 \end{frame}
 
 \begin{frame}[fragile]
-	\frametitle{The Game}
+	\frametitle{Les vecteurs}
 	\framesubtitle{Vecteur(ception)}
 	\begin{lstlisting}
 	let t = [| 
 \begin{frame}[fragile]
 	\frametitle{Les vecteurs}
 	\framesubtitle{Copie et valeurs partagées}
+	\begin{block}{Soit une copie simple}
 	\begin{lstlisting}
-	let v2 = Array.copy v ;;
-	val v2 : int array = [|1; 0; 0|]
-	let m2 = Array.copy m ;;
-	val m2 : int array array = 
-	[|[|1; 0; 0|]; [|1; 0; 0|]; [|1; 0; 0|]|]
+	let v = Array.make 3 1;;
+	val v : int array = [|1; 1; 1|]
+	let m = Array.copy v ;;
+	val m : int array = [|1; 1; 1|]
 
 	v.(1)<- 1337;;
 	- : unit = ()
 
-	v2;; 
-	- : int array = [|1; 0; 0|]
+	m;;
+	-: int array = [|1; 1; 1|]
+	\end{lstlisting}
+	\end{block}
+\end{frame}
+
+\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
 	
-	\item Array.sub (Ex: Array.sub a start n)
-	
-	\item Array.\{iter,map,iteri,to\_list\}
+	\item Array.iter
+
+	\item Array.map 
+
+	\item Array.iteri
+
+	\item Array.to\_list
+
+	\item RTFM...
 
-	\item RTFM !!!
 	\end{itemize}
 \end{frame}
 
 
 \end{frame}
 
-\begin{frame}
-	\frametitle{Les tables de hachage}
-	\includegraphics[scale=0.6]{pics/hash.jpg}
-\end{frame}
-
-\subsection{Les tables de hachage}
-\begin{frame}[fragile]
-\frametitle{Les tables de hachage}
-\framesubtitle{Initialisation}
-	Ici seront présentée les tables de hachage du module Hashtbl (qui fais du hachage dynamique
-	\begin{lstlisting}
-	open Hashtbl
-	\end{lstlisting}
-	Pour créer une pile on utilise:
-	\begin{lstlisting}
-	Hashtbl.create
-	val create : ?random:bool -> int -> ('a, 'b) t
-	\end{lstlisting}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Les tables de hachage}
-\framesubtitle{Utilisation}
-	\begin{itemize}
-	
-	\item
-		\begin{lstlisting}
-		Hashtbl.add   VS   Hashtbl.replace
-		\end{lstlisting}	
-	
-	\item
-		\begin{lstlisting}
-		Hashtbl.remove h x
-		Hashtbl.find h x
-		Hashtbl.find_all h x
-		\end{lstlisting}	
-
-	\end{itemize}
-
-
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Les tables de hachage}
-\framesubtitle{Les fonctions essentielles}
-	\begin{itemize}
-	
-	\item
-		\begin{lstlisting}
-		Hashtbl.clear
-		\end{lstlisting}
-
-	\item
-		\begin{lstlisting}
-		Hashtbl.copy
-		\end{lstlisting}	
-
-	\item
-		\begin{lstlisting}
-		Hashtbl.mem
-		\end{lstlisting}	
-
-	\item
-		\begin{lstlisting}
-		Hashtbl.length
-		\end{lstlisting}
-
-	\end{itemize}
-
-\end{frame}
-
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.