;gestione vettori
;prodotto di costante per elementi vettore
;somma prodotti parziali
;stampa elementi vettore
;vet5

(prog1
(print "-----------------------")
(setq vect1(make-array '(4):initial-contents '(1 2 3 4)))
(print vect1)
;legge numero elementi in vettore e assegna a dotimes
(setq lungo(length vect1))
;prodotto elementi vettore
(setq costante 10)
(setq somma 0)
(print costante)
(print "---segue prodotto costante*numero--")
(dotimes(conta lungo 0)
(setq a(aref vect1 conta))
(setq somma (+ somma (* a costante)))
(print (* a costante)))
(terpri)
(prin1 "somma prodotti=")(prin1 somma)(terpri)
(terpri)

)
;gestione vettori
;somma elementi di due vettori
;vet6

(prog1
(print "-----------------------")
(print" vettori da sommare ")
(setq vect1(make-array '(4):initial-contents '(1 2 3 4)))
(print vect1)
(setq vect2(make-array '(4):initial-contents '(5 6 7 8)))
(print vect2)
;legge numero elementi in vettore e assegna a dotimes
(setq lungo(length vect1))
;somma elementi vettori a due a due
(print "---segue somma elemementi--")
(dotimes(conta lungo 0)
(setq a(aref vect1 conta))
(setq b(aref vect2 conta))
(print (+ a b)))
(terpri)

)
;gestione vettori letterali tipo lista
;aggiunge desinenze a radice verbale
;con triplo formato CONS  LIST  APPEND
;vet7

(prog1
(print "-----------------------")
(print" desinenze da aggiungere a radice ")
(setq vect1(make-array '(6):initial-contents '(o as at amus atis ant)))
(print vect1)
;legge numero elementi in vettore e assegna a dotimes
(setq lungo(length vect1))
(print "---segue stampa forme verbali--")
(dotimes(conta lungo 0)
(setq a(aref vect1 conta))
(print(cons'(laud) a))
(print(append '(laud) a))
(print(list'(laud) a)))
(terpri)

)
ritorna