Re: DEFUN list argument

Liste des GroupesRevenir à cl scheme 
Sujet : Re: DEFUN list argument
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 11. Jul 2025, 06:00:22
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <104q5p5$1bb98$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Steven E. Harris wrote:

(defun dot-product (u v)
  (loop for elem-u across u
        for elem-v across v
        summing (* elem-u elem-v)))
 
 
(dot-product (vector 1 2 3)
               (vector 4 5 6))
32

Gauche Scheme

(use gauche.sequence)

(define (dot-product u v)
  (fold
    (lambda (e-u e-v sum) (+ sum (* e-u e-v)))
    0
    u
    v))

(dot-product #(1 2 3) #(4 5 6))
  ===>
32


Here's a version that handles any number of vectors.

(use scheme.vector)

(define (dot-product . vecs)
  (apply vector-fold
    (lambda (sum . elems) (+ sum (apply * elems)))
    0
    vecs))

(dot-product #(1 2 3) #(4 5 6) #(7 8 9))
  ===>
270



Shorter:

(define (dot-product u v)
  (fold + 0 (map * u v)))


Shorter:

(define (dot-product u v)
  (apply + (map * u v)))

Date Sujet#  Auteur
11 Jul06:00 o Re: DEFUN list argument1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal