X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/blobdiff_plain/b65eb55993530f30dea2f032b4d1b0611a24f2fc..refs/heads/master:/source/d.rst?ds=inline diff --git a/source/d.rst b/source/d.rst index bc2075b..426a800 100644 --- a/source/d.rst +++ b/source/d.rst @@ -1,10 +1,4 @@ -.. Introducción y breve reseña del lenguaje de programación D. También - se presentan las necesidades particulares de D con respecto al - recolector de basura y su estado actual. - ESTADO: TERMINADO, CORREGIDO - - .. highlight:: d .. _d_lang: @@ -280,12 +274,14 @@ Iteración sobre colecciones (``foreach``) Ejemplo de especialización:: + T sumar(T)(T x, T y) { return x + y; } T sumar(T: int)(T x, T y) { return x + y + 1; } auto i = sumar(5, 6); // i == 12 auto f = sumar(5.0f, 6.0f) // f == 11.0f Ejemplo de especialización parcial:: + T sumar(T)(T x, T y) { return x + y; } T sumar(T: T*)(T x, T y) { return *x + *y; } int x = 5, y = 6; auto i = sumar(&x, &y); // i == 11 @@ -381,7 +377,7 @@ Iteración sobre colecciones (``foreach``) } int sumar(int a, int b) { - mixin(generar_sumar!("a", b")); + mixin(generar_sumar!("a", "b")); } Expresiones ``is`` @@ -507,7 +503,7 @@ Programación de alto nivel Programación de alto nivel se refiere a construcciones más avanzadas que una sentencia para iterar; expresiones con una semántica más ricas que proveen de -mayor expresividad al programador o le permiten focalizarse de mejora manera +mayor expresividad al programador o le permiten focalizarse de mejor manera en los algoritmos independizándose del *hardware* o de como funciona una computadora. Es exactamente el opuesto a :ref:`d_low_level`. @@ -795,17 +791,17 @@ Propiedades (*properties*) Valor de inicialización por omisión (ejemplo: ``float.init`` -> *NaN* [#dnan]_). - .. [#dnan] Del inglés *Not A Number*, es un valor especial que indica que - estamos ante un valor inválido. + .. [#dnan] Del inglés *Not A Number*, es un valor especial codificado según + IEEE 754-2008 [IEEE754]_ que indica que estamos ante un valor inválido. ``stringof`` Representación textual del símbolo o expresión (ejemplo: ``(1+2).stringof`` -> ``"1 + 2"``). ``mangleof`` - Representación textual del tipo *mutilado* [#dmangle]_. + Representación textual del tipo *mutilado* [#dmangle]_ [DWAB]_. - .. [#dmangle] *Name mangling* es el nombre dado comunmente a una técnica + .. [#dmangle] *Name mangling* es el nombre dado comúnmente a una técnica necesaria para poder sobrecargar nombres de símbolos. Consiste en codificar los nombres de las funciones tomando como entrada el nombre de la función y la cantidad y tipo de parámetros, asegurando que dos @@ -818,11 +814,6 @@ Propiedades (*properties*) Estos son solo los *properties* predefinidos para todos los tipos, pero hay una cantidad considerable de *properties* extra para cada tipo. - Más información sobre *properties* de clases en - http://www.digitalmars.com/d/1.0/property.html#classproperties y sobre - *properties* predefinidos en - http://www.digitalmars.com/d/1.0/property.html - .. _d_dbc: @@ -955,7 +946,7 @@ Inicialización garantizada basura (en la mayoría de los casos el recurso a administrar es sencillamente memoria). Sin embargo en los casos en donde es necesario, puede utilizarse *RAII* mediante la utilización de la palabra reservada - ``scope``, que limita la vida de un objeto un bloque de código [DWES]_. + ``scope``, que limita la vida de un objeto a un bloque de código [DWES]_. Ejemplo::