To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
Spanish Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

De Wikipedia, la enciclopedia libre

car y cdr son operaciones primitivas sobre las celdas cons (o "expresiones S no atómicas") introducidas en el lenguaje de programación Lisp. Una celda cons se compone de dos punteros, la operación car extrae el primer puntero, y la operación cdr extrae el segundo.

Por lo tanto, la expresión (car (cons x y)) se evalúa como x , y (cdr (cons x y)) se evalúa como y.

Cuando las celdas cons son usadas para implementar listas enlazadas simples (en vez de árboles y otras estructuras más complicadas), la operación car devuelve el primer elemento de la lista, mientras que cdr devuelve el resto de la lista. Por esta razón, a las operaciones a veces se le dan los nombres de first y rest o head y tail (primero y resto o cabeza y cola).

YouTube Encyclopedic

  • 1/3
    Views:
    709
    130 628
    22 640
  • Lisp, что надо показать: списки, голова, хвост, car, cdr, cadr, ...
  • How to play burned CDs in your car
  • My USB Car Radio (Philips Car 400)

Transcription

Etimología

Lisp fue implementado originalmente en el computador IBM 704, a finales de los años 1950. El hardware del 704 tuvo un soporte especial para dividir una palabra de máquina de 36-bits en cuatro partes, una "address part" y "decrement part" ("parte dirección" y "parte decremento") de 15 bits cada una y una "prefix part" y "tag part" ("parte prefijo" y "parte tag") de tres bits cada una.

Precursores de Lisp incluye funciones:

  • car abreviación de "Contents of the Address part of Register number" (Contenido de la parte dirección del número de registro),
  • cdr "Contents of the Decrement part of Register number" (contenido de la parte decremento del número de registro),
  • cpr "Contents of the Prefix part of Register number" (contenido de la parte prefijo del número de registro), y
  • ctr "Contents of the Tag part of Register number" (contenido de la parte tag del número de registro),

cada uno de ellos tomaba una dirección de máquina como argumento, cargado la palabra correspondiente desde la memoria, y extrayendo los bits apropiados.

El macro de ensamblador del 704 para la instrucción cdr era:

LXD JLOC, 4
CLA 0,4
PDX 0,4
PXD 0,4[1]

Una palabra de máquina puede ser reensamblada por cons, que tomaba cuatro argumentos (a, d, p, t).

En las etapas iniciales del diseño de Lisp, las partes prefijo y tag eran descartadas dejando CAR, CDR, y un CONS de dos argumentos.[2]

Aceptación continuada

Los nombres alternativos first y rest, que se remontan al menos a 1959,[3]​ a veces son preferidos a car y cdr. Sin embargo, car y cdr tienen la ventaja de que cortas composiciones de funciones pueden dar nombres cortos y más o menos pronunciables de la misma forma. En Lisp, (cadr '(1 2 3)) es equivalente a (car (cdr '(1 2 3))); su valor es 2 (el primer elemento del resto de (1 2 3) ). Similarmente, (caar '((1 2) (3 4))) es lo mismo que (car (car '((1 2) (3 4)))); su valor es 1. La mayoría de los Lisps establecen un límite en el número de formas compuestas que soportan; Common Lisp y Scheme proporcionan formas con hasta cuatro repeticiones de la a y d. Sin embargo, otras composiciones pueden ser fácilmente definidas por el usuario.

Otros lenguajes de programación

Muchos lenguajes (particularmente lenguajes funcionales y lenguajes influenciados por el paradigma funcional) usan una lista enlazada simple como una estructura de datos básica, y proporcionan primitivas o funciones similares a car y cdr. Estas son nombradas como first y rest, head y tail, etc. En Lisp, sin embargo, la celdas cons no sólo son usadas para construir listas enlazadas, sino también para construir estructuras par y par anidadas, es decir, la cdr de una celda cons no necesita ser una lista. En este caso, la mayoría de los otros lenguajes proporciona diferentes primitivas, pues ellos distinguen estructuras par de estructuras de lista sea tipeado o semánticamente. Particularmente en lenguajes tipeados, las listas, pares, y los árboles todos tienen diferentes funciones de acceso con firmas de tipo diferentes: en Haskell, por ejemplo, el car y cdr se convierten en fst y snd cuando se trata de un tipo par. Analogías exactas del car y cdr son, por lo tanto, raras en otros lenguajes.

Referencias

  1. Portions from NILS' LISP PAGES- http://t3x.dyndns.org/LISP/QA/carcdr.html
  2. McCarthy, John (12 de febrero de 1979). «History of Lisp». 
  3. McCarthy, J., Erratum to Memo 8, Recursive Functions of Symbolic Expressions and Their Computation By Machine, dated March 13, 1959, retrieved September 19, 2008.
Notas
Esta página se editó por última vez el 26 ene 2022 a las 01:40.
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.