home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #6 / amigamamagazinepolishissue1998.iso / coders / jËzyki_programowania / clisp / src / archive / clisp.faslsp.lha / defseq.lsp < prev    next >
Text File  |  1996-04-15  |  2KB  |  111 lines

  1. ;; Definitionen der Standard-Sequence-Typen
  2. ;; (in Verbindung mit SEQUENCE.Q)
  3. ;; Bruno Haible 9.7.1989, 1.8.1989, 2.8.1989
  4.  
  5. (in-package "SYSTEM")
  6.  
  7. (%defseq
  8.   (vector
  9.     'LIST
  10.     #'identity
  11.     #'list-upd
  12.     #'list-endtest
  13.     #'list-fe-init
  14.     #'list-upd
  15.     #'list-endtest
  16.     #'list-access
  17.     #'list-access-set
  18.     #'identity
  19.     #'list-llength
  20.     #'make-list
  21.     #'list-elt
  22.     #'list-set-elt
  23.     #'list-init-start
  24.     #'list-fe-init-end
  25. ) )
  26.  
  27. (%defseq ; VECTOR steht für GENERAL-VECTOR
  28.   (vector
  29.     'VECTOR
  30.     #'vector-init
  31.     #'vector-upd
  32.     #'vector-endtest
  33.     #'vector-fe-init
  34.     #'vector-fe-upd
  35.     #'vector-fe-endtest
  36.     #'aref
  37.     #'sys::store
  38.     #'identity
  39.     #'vector-length
  40.     #'make-array
  41.     #'aref
  42.     #'sys::store
  43.     #'vector-init-start
  44.     #'vector-fe-init-end
  45. ) )
  46.  
  47. (%defseq
  48.   (vector
  49.     'STRING
  50.     #'vector-init
  51.     #'vector-upd
  52.     #'vector-endtest
  53.     #'vector-fe-init
  54.     #'vector-fe-upd
  55.     #'vector-fe-endtest
  56.     #'char
  57.     #'sys::store
  58.     #'identity
  59.     #'vector-length
  60.     #'make-string
  61.     #'char
  62.     #'sys::store
  63.     #'vector-init-start
  64.     #'vector-fe-init-end
  65. ) )
  66.  
  67. (%defseq
  68.   (vector
  69.     'BIT-VECTOR
  70.     #'vector-init
  71.     #'vector-upd
  72.     #'vector-endtest
  73.     #'vector-fe-init
  74.     #'vector-fe-upd
  75.     #'vector-fe-endtest
  76.     #'bit
  77.     #'sys::store
  78.     #'identity
  79.     #'vector-length
  80.     #'make-bit-vector
  81.     #'bit
  82.     #'sys::store
  83.     #'vector-init-start
  84.     #'vector-fe-init-end
  85. ) )
  86.  
  87. (mapc
  88.   #'(lambda (n &aux (eltype (list 'UNSIGNED-BYTE n)))
  89.       (%defseq
  90.         (vector
  91.           n ; n steht für `(VECTOR (UNSIGNED-BYTE ,n))
  92.           #'vector-init
  93.           #'vector-upd
  94.           #'vector-endtest
  95.           #'vector-fe-init
  96.           #'vector-fe-upd
  97.           #'vector-fe-endtest
  98.           #'aref
  99.           #'sys::store
  100.           #'identity
  101.           #'vector-length
  102.           #'(lambda (length) (make-array length :element-type eltype))
  103.           #'aref
  104.           #'sys::store
  105.           #'vector-init-start
  106.           #'vector-fe-init-end
  107.     ) ) )
  108.   '(1 2 4 8 16 32)
  109. )
  110.  
  111.