Advertisement
Guest User

Untitled

a guest
Mar 19th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.18 KB | None | 0 0
  1. (defun list_even_items (L)
  2.   (defun even (L n)
  3.     (if (null L)
  4.       (if (= 0 (mod n 2))
  5.         T
  6.         NIL)
  7.       (even (cdr L) (1+ n))))
  8.     (even L 0))
  9.  
  10. (defun sum_atoms (L)
  11.   (defun sum (L n)
  12.     (if (null L)
  13.       n
  14.       (if (numberp (car L))
  15.         (sum (cdr L) (+ n (car L)))
  16.         (sum (cdr L) n))))
  17.     (sum L 0))
  18.  
  19. (defun max_depth (L &optional (md 0))
  20.   (defun depth (L n)
  21.     (if (atom L)
  22.       (setq md (max n md))
  23.       (loop for elem in L
  24.         do (depth elem (1+ n)))))
  25.   (depth L md)
  26.   md)
  27.  
  28. (defun max_elem (L)
  29.   (defun elems (L)
  30.     (if (atom L)
  31.       (setq me (max me L))
  32.       (loop for elem in L
  33.         do (elems elem))))
  34.   (setq me (car L))
  35.   (elems L)
  36.   me)
  37.  
  38. (defun eval_expr (L)
  39.   (defun calc (L)
  40.     (cond ((not (listp L)) L)
  41.       ((null (cdr L)) (calc (car L)))
  42.       ((eq (cadr L) '*) (calc (cons (* (calc (car L)) (calc (caddr L))) (cdddr L))))
  43.       ((eq (cadr L) '/) (calc (cons (/ (calc (car L)) (calc (caddr L))) (cdddr L))))
  44.       ((eq (cadr L) '+) (+ (calc (car L)) (calc (cddr L))))
  45.       (T (- (calc (car L)) (calc (cddr L)))))
  46.   (cond ((not(listp L)) "not list")
  47.     ((null L) "the list is empty")
  48.     (T (calc L)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement