En la programación de computadora, el cons ( ˈkɒnz o /ˈkɒns/ ) es una función fundamental en todos los dialectos balbucea el lenguaje de programación . el de cons construye los objetos de la memoria de (por lo tanto el nombre) que sostienen dos valores o indicadores a los valores. Estos objetos se refieren como las células (del contra), los conses, o pares (del contra). En balbucea la jerga, el " de la expresión; al x del contra sobre " del y ; medios de construir un nuevo objeto con el ( y ) del x del contra. El par resultante tiene una mitad izquierda, designada el car (el primer elemento), y una mitad derecha (el segundo elemento), designada el cdr.

Se relaciona libremente con la noción orientada al objeto de un constructor, que crea un nuevo objeto dado discusiones, y más estrechamente vinculado a la función del constructor de un tipo de datos algebraico sistema de .

El " de la palabra; cons" y las expresiones tienen gusto del " al onto" del contra; está también la parte de una jerga más general de la programación funcional . Los operadores que tienen un propósito similar, especialmente en el contexto del proceso por lista, son a veces " pronunciado; cons". (El buen ejemplo de A es el :: operador de en el ml, que agrega un elemento al principio de una lista.)

Uso

Aunque el contra que las células se pueden utilizar para ejecutar pidiera pares de datos a una cara, él se utilice más comunmente para construir las estructuras de datos de un compuesto más complejo, notablemente listas y árboles binarios

Por ejemplo, el de la expresión del balbuceo (el contra 1 2) construye una célula que sostiene 1 por la mitad su izquierdo (el campo supuesto del coche del ) y 2 en su mitad derecha (el campo de los cdr del ). En balbucea la notación, el del valor (el contra 1 2) mira gusto:

(1. 2)

Listas

En balbucean, las listas se ejecutan encima de pares del contra. Más específicamente, cualquier estructura de la lista adentro balbucea es cualquiera:

una lista vacía, que es un objeto especial llamó generalmente nil.

  • Una célula del contra cuyo car es el primer elemento de la lista y cuyo cdr es una lista más pequeña que contiene el resto de los elementos. Esto forma la base de un simple, la estructura solo-ligada de la lista cuyo contenido se puede manipular con cons, car, y cdr. Observar que nil es la única lista que no es también pares del contra. Como ejemplo, considerar una lista cuyos elementos sean 1, 2, y 3. Tal lista se puede crear en tres pasos:

    Cons 3 sobre nil, el

  • vacío de la lista Contra 2 sobre el
  • del resultado Contra 1 sobre el resultado

    cuál es equivalente a la sola expresión:

    (contra 1 (contra 2 (nada del contra 3)))

    o su taquigrafía:

    (lista 1 2 3)

    El valor resultante es la lista:

    (1.

    *--*--*--nada | | | 1 2 3

    cuál se abrevia generalmente como:

    (1 2 3)

    Así, cons se puede utilizar para agregar un elemento al frente de una lista encadenada existente. Por ejemplo, si el x es la lista definimos arriba, después el ( x ) del contra 5 presentará la lista:

    (5 1 2 3)

    Otro procedimiento útil de la lista es del añade , que concatena dos listas existentes (es decir combina dos listas en una sola lista).

    Árboles

    Los árboles binarios que almacenan datos en su salen de, también se construyen fácilmente con cons. Por ejemplo, el código:

    (contra (contra 1 2) (contra 3 4))

    resultados en el árbol:

    ((1.

    * /\ * * /\/\ 1 2 3 4

    Técnico, la lista (1 2 3) en el ejemplo anterior es también un árbol binario, uno que suceda ser desequilibrado particularmente. Para ver esto, cambiar simplemente el diagrama:

    *--*--*--nada | | | 1 2 3

    al equivalente siguiente:

    * /\ 1 * /\ 2 * /\ nada 3

    Uso en la conversación

    cons se utiliza a veces familiar en la conversación (notablemente en MIT ), generalmente en el " de la expresión; cons el up". Por ejemplo:

    ¿

    Can usted cons encima de ese email que envié EC-para discutir hace dos semanas?

    El artículo que es " up" del cons'd; está la primera discusión al operador, con la segunda discusión implicada siendo la lista de toda la información actual a la mano. Ver también al coche y a cdr .

    Menos caprichoso, puede también referir al proceso general de la asignación de memoria, en comparación con usar las operaciones destructivas de la clase que sería utilizada en un lenguaje de programación imprescindible. Por ejemplo:

    el

    I aceleró el código un pedacito poniendo en que los efectos secundarios en vez del tenerlo cons como crazy.

    No fundamental

    Puesto que tienen funciones de primera clase balbucean todas las estructuras de datos, incluyendo las células del contra, no son fundamental necesarias a la lengua, puesto que todas las estructuras de datos se pueden ejecutar usar funciones. Por ejemplo, en el esquema :

    (definir (contra x y) (lambda (m) (m x y))) (definir (el coche z) (z (lambda (p q) p))) (definir (los cdr z) (z (lambda (p q) q)))

    Los re-instrumentos antedichos del código el cons, el coche del, y operaciones de los cdr del, usar una función como el " cons el cell". Ésta es la manera generalmente de definir las estructuras de datos en el cálculo puro, un extracto, modelo teórico de la lambda del cómputo que es estrechamente vinculado proyectar.

    Esta puesta en práctica, mientras que académicamente es interesante, es impráctica porque hace las células del contra indistinguibles de cualquier otro procedimiento del esquema, así como la introducción de ineficacias de cómputo innecesarias.

    Curiosidades

    Bajo el nombre del " cons el box" (que la célula se llama en más viejo balbucean los textos como el " de la obra clásica de Juan Allen; Anatomía de Lisp"), el contra ha sido el símbolo y el logotipo del programa educativo de informática del estudiante en la universidad de Uppsala desde su inicio en 1981.

    Ver también


    el del

    balbucea (lenguaje de programación)
    COCHE y CDR
    Constructor (de informática)
    Tipo de datos algebraico

  • .

  • Zenithic
  • Contra
    Random links:Palacio de Ludwigsburg | Modelo Casco-Blanco | Luces del centelleo y otras revelaciones | Starz (venda) | Tensión de Julia

  • © 2007-2008 enciclopediaespana.com; article text available under the terms of GFDL, from en.wikipedia.org
    ="http://pagead2.googlesyndication.com/pagead/show_ads.js">