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.)
Por ejemplo, el (1. 2) una lista vacía, que es un objeto especial llamó generalmente Cons 3 sobre 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í, (5 1 2 3) Otro procedimiento útil de la lista es del (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 ¿ 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 (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. balbucea (lenguaje de programación) .
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: 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: nil. 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: nil, el 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: 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: 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?
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 : 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
COCHE y CDR
Constructor (de informática)
Tipo de datos algebraico Random links: Palacio de Ludwigsburg | Modelo Casco-Blanco | Luces del centelleo y otras revelaciones | Starz (venda) | Tensión de Julia