2009-02-21 13 views
6

Soy un novato en el ámbito de la programación funcional y acabo de comenzar a aprender Scheme (aunque es un lenguaje de programación semifuncional). Hice algunos tutoriales en listas que son bien compatibles en Scheme. Me preguntaba si Scheme tiene soporte para manipular arreglos.Representación de matriz en el esquema

¿Debo definir mi propio tipo de datos? Las listas son tipos de datos definidos inductivamente. Si voy a definir arreglos como un nuevo tipo de datos, ¿puede definirse inductivamente?

Por favor ayuda. Gracias de antemano.

aplausos

Respuesta

9

que buscas un vector.

(define arr (vector 1 2 3)) 
(define arr #(1 2 3)) 
+0

Gracias por introducirme a la noción de vector en el esquema. Lo busqué y parece que se puede buscar en tiempo constante (como en las matrices). Además, parece ser un tipo de datos fijo en el espacio, muy parecido a una matriz. cheers – Arnkrishn

+1

Recuerde que las constantes vectoriales (en R5RS al menos) deben ser citadas. El último ejemplo debería ser '(define arr '# (1 2 3))'. Nota: algunas implementaciones hacen que la cita sea opcional. – soegaard

1

puede representar matrices utilizando vectores. Los vectores en Scheme no son funcionales en el sentido de que puedes mutarlos (usando vector-set!). Sin embargo, también listas pueden mutar usando set-car! y set-cdr !.

Cuestiones relacionadas