0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
24 visualizzazioni1 pagina
Este documento presenta un resumen de los principales conceptos y características del lenguaje de programación funcional OCaml, incluyendo tipos de datos, operadores, funciones, expresiones condicionales, registros, arreglos, listas, entre otros. Se destacan las diferencias entre el estilo funcional y el imperativo, así como ejemplos de definiciones, declaraciones, aplicaciones de funciones y estructuras de control como ciclos y condicionales. Finalmente, se mencionan funciones matemáticas incorporadas y operaciones de entrada/salida.
Este documento presenta un resumen de los principales conceptos y características del lenguaje de programación funcional OCaml, incluyendo tipos de datos, operadores, funciones, expresiones condicionales, registros, arreglos, listas, entre otros. Se destacan las diferencias entre el estilo funcional y el imperativo, así como ejemplos de definiciones, declaraciones, aplicaciones de funciones y estructuras de control como ciclos y condicionales. Finalmente, se mencionan funciones matemáticas incorporadas y operaciones de entrada/salida.
Este documento presenta un resumen de los principales conceptos y características del lenguaje de programación funcional OCaml, incluyendo tipos de datos, operadores, funciones, expresiones condicionales, registros, arreglos, listas, entre otros. Se destacan las diferencias entre el estilo funcional y el imperativo, así como ejemplos de definiciones, declaraciones, aplicaciones de funciones y estructuras de control como ciclos y condicionales. Finalmente, se mencionan funciones matemáticas incorporadas y operaciones de entrada/salida.
Estilo funcional Operadores de comparación (polimorfos) Estilo imperativo
Comentarios <, <=, >, >= Inferior (o igual), superior (o igual) Tipos (* Nota *) Comentario mono-línea =, <> Igual, diferente unit Tipo vacío, único valor () (* Principio de parágrafo ==, != Igual, diferente (físicamente) t1 ref Referencia hacia t1 ... Comentarios imbricados min x y, max x y Mínimo y máximo t1 array Arreglo de t1 (* Comentario anterior *) ... Operadores lógicos Referencias Fin de parágrafo *) && y lógico (perezoso) let r = ref val Declarar e inicializar || o lógico (perezoso) 3 + !var Acceso al valor referenciado Tipos sencillos not no lógico var := val Asignación bool Booleanos (valores de verdad) incr var, decr var Incrementación, decrementación int Enteros relativos (generalmente sobre 63 bits) Expresiones condicionales float Números flotantes (reales) if c then a else b Vale a si c es verdadero y b sino Arreglos char Caracteres individuales [| 2 ; 3 |] Nuevo arreglo string Cadenas de caracteres Filtración let a = Array.make tam val Idem, índices de 0 a tam − 1 match expresión with Si expresión vale : var = a.(5); Lectura Tipos construidos patrón1 -> expr1 patrón1 entonces expr1 a.(0) <- var; Escritura t1 * t2 Producto cartesiano |patrón2 -> expr2 patrón2 entonces expr2 t1 -> t2 Funciones de t1 en t2 ... ... Registros t1 list Lista de t1 |patrónn -> exprn patrónn entonces exprn typedef reg = { Definición typedef entero = int;; Definición cam1 : bool; Campo no mutable typedef t3 = A0 | Bb | CC;; Tipo suma (enumerado) Patrones mutable cam2 : int; Campo mutable typedef t4 = Cons1 of int | Cons2... Tipo suma (otro) 1 Patrón constante } 2|3 Patrones agrupados let r = { cam1 = true; cam2 = 3; } Valor Constantes n when n>0 Patrón universal con guardia false, true Booleanos (Falso, Verdadero) let r2 = { r with cam1 = false } Variante modificada de r x::l Lista no vacía r.cam2 <- r.cam2 + 1; Modificación in situ -4, 3_000, 0b10, 0o77, 0x5f Enteros (base 10, 10, 2, 8, 16) x::l as l2 Lista con alias 0.2, -3.45e-10 Flotantes Control x, y, z Tripla ’a’, ’\n’, ’\"’, ’\\’, ’\’’ Caracteres (a, Entrar, especiales) 2 + 2 ;; Toda frase Caml termina con ;; _ Patrón universal anónimo "Hola !" Cadena de caracteres instr1 ; instr2 Secuencia 7 : entero Valor de tipo entero Funciones begin instr1 ; instr2 end Secuencia delimitada 4 , true Valor de tipo int * bool let f x = x + 3;; Definición if condición Cuando condición es verdadera, Cons1 7 Valor de tipo t4 let rec f x = ... Definición recursiva then instrucción1 hacer algo, Declaraciones let g x y = x + 2*y Función con varios parámetros else instrucción2 sino (opcional) hacer otra cosa let var = expr ;; Declaración global f 5, f(4), g 1 6 Aplicacíon fun x y -> x * y Función anónima Ciclo para let var = expr1 in expr2 Declaración local let var1 = expr1 and var2 = expr2... Declaración simultánea function 0 -> ... for id = valmin to valmax do ∀ id de valmin a valmax, |n -> ... Definición por filtros instrucción repetir instrucción Operadores enteros (+) Versión prefija de un operador done +, - Suma, resta for id = valmax downto valmin do ∀ id de valmax a valmin, *, /, mod Producto, cociente y residuo Funciones matemáticas (flotantes) instrucción repetir instrucción abs x Valor absoluto de x sin, cos, tan Trigonométricas, ángulo en radianes done Operadores flotantes asin, acos, atan Trigonométricas inversas exp, log, log10 Base e, base 10 Ciclo mientras +., -. Suma, resta √ while condición do Mientras condición es verdadera, sqrt x x *., /. Producto, cociente instrucción repetir instrucción floor x, ceil x bxc, dxe ** Potencia done Operadores de cadenas Listas Entradas/salidas [] Lista vacía cad1 ^ cad2 Concatenación (acento circunflejo) read_float (); Entrada de flotante (teclado) [ 1 ; 2 ; 3 ] Lista de tipo int list cad.[n] Enésimo carácter de cad print_int 5; Visualización de entero (terminal) 1 :: [ 2 ; 3 ] Cabeza : : cola Operadores de conversión l1 @ l2 Concatenación (arroba) print_string "abc"; Cadena int_of_string Cadena hacia entero print_newline (); Salto de línea int_of_float Truncamiento Tratamiento de los errores OCaml v. 4.03,
c Alexis Irlande, agosto de 2016 char_of_int Tabla ASCII failwith "mensaje" Fracasa mostrando mensaje http://irlande.hd.free.fr/