[comp.lang.lisp] lost soul needs help with trivial code.

owhite@nmsu.edu (smouldering dog) (02/20/91)

hi I am new to lisp and I think it is incredibly useful for the work I
have been doing in DNA analysis.  I can't get this little hack to
work.  I sincerely would like to understand what is goin wrong and I
sincerely need someone's help:

make-length-list gets a cons-list like ((100 200) (300 400) (455 526))
and I just want it to return a cons-list (100 100 71).

(defun make-length-list(coord)
  (let ((first (car coord))
	(this ())
	(n1 0)
	(n2 0))
    (if coord
	(progn
	  (while coord
	  (let ((first (car coord))
	    (setq n1 (car coord))
	    (setq n2 (car (cdr coord))))
	    (cons (- n2 n1) this))
	  (setq coord (cdr coord)))))))

--

	owen white		(owhite@nmsu.edu)

-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-*-=-=-*-=-
               got my head on a pole (for better reception)
-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-=-*-=-*-=-=-*-=-

iam@Gang-of-Four.Stanford.EDU (Ian Mason) (02/20/91)

try the following, somewhat more in the spirit of lisp

(define f (list)
   (mapcar (function (lambda (x) (- (cadr x) (car x))) list)))

		-iam-		

duthen@ircam.fr (Jacques Duthen) (02/21/91)

In article <OWHITE.91Feb19091907@haywire.nmsu.edu> owhite@nmsu.edu (smouldering dog) writes:
>make-length-list gets a cons-list like ((100 200) (300 400) (455 526))
>and I just want it to return a cons-list (100 100 71).

(defun make-length-list (coord)
  (mapcar #'(lambda (elt) (abs (- (second elt) (first elt)))) coord))

(make-length-list '((100 200) (300 400) (455 526)))
;= (100 100 71)

; Welcome to Lisp world !
							[jack]