Advertisement
Guest User

Untitled

a guest
Oct 29th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 2.30 KB | None | 0 0
  1. (DEFUN lungime (lista)
  2.     (COND   ((NULL lista) 0                                )
  3.             (T            (+ 1 (lungime (REST lista) ) )   )
  4.     )
  5. )
  6.  
  7. (print(lungime  '(1 2 3)))
  8.  
  9. (DEFUN ordered (lista)
  10.     (COND ((NULL (SECOND lista)) T)
  11.           ((> (FIRST lista) (SECOND lista)) NIL)
  12.           (T ( ordered (REST lista)))
  13.     )
  14. )
  15.  
  16. (print(ordered '(1 5 3)))
  17.  
  18. (DEFUN remove_nonnum (lista)
  19.     (COND   ((NULL lista) NIL)
  20.             ((NULL (NUMBERP (FIRST lista))) (remove_nonnum (DELETE (FIRST lista) lista)))
  21.             (T (CONS (FIRST lista) (remove_nonnum (REST lista))))
  22.     )
  23. )
  24.  
  25. (print(remove_nonnum '(1 (a b) 3 mere 5)))
  26.  
  27. (DEFUN remove_nonnum_all (lista)
  28.     (COND   ((NULL lista) NIL)
  29.             ((NUMBERP (FIRST lista)) (CONS (FIRST lista) (remove_nonnum_all (REST lista))))
  30.             ((LISTP (FIRST lista)) (CONS (remove_nonnum_all (FIRST lista)) (remove_nonnum_all (REST lista))))
  31.             (T (remove_nonnum_all (REST lista)))
  32.     )
  33. )
  34.  
  35.  
  36. (print(remove_nonnum_all '(1 (3 b) mere 5)))
  37.  
  38. (DEFUN sum_num_all (lista)
  39.     (COND   ((NULL lista) 0)
  40.             ((NUMBERP (FIRST lista)) (+ (FIRST lista) (sum_num_all (REST lista))))
  41.             ((LISTP (FIRST lista)) (+ (sum_num_all (FIRST lista)) (sum_num_all (REST lista)) ))
  42.             (T (sum_num_all (REST lista)))
  43.     )
  44. )
  45.  
  46. (print(sum_num_all '(1 (3 (1 2) b) mere 5)))
  47.  
  48.  
  49. (DEFUN concat (list1 list2)
  50.     (COND ((NULL list1) list2)
  51.           (T (CONS (FIRST list1) (concat (REST list1) list2) ))
  52.     )
  53. )
  54.  
  55. (print (concat '(1 2 3) '(4 5 6)))
  56.  
  57.  
  58. (DEFUN map_leaf (func lista)
  59.     (MAPCAN #'(LAMBDA (x) ( COND ((NULL x) NIL)
  60.                                  ((ATOM x) (LIST(FUNCALL func x)))
  61.                                  (T (LIST(map_leaf func x)))
  62.                           )
  63.               )
  64.     lista)
  65. )
  66.  
  67. (print (map_leaf #'NUMBERP '(1 (2 a) (4) 5)))
  68.  
  69.  
  70. (DEFUN concat_all (list_of_lists)
  71.     (MAPCAN #'  (LAMBDA (lista) (MAPCAN #'  (LAMBDA (element) (LIST element)) lista)) list_of_lists)
  72. )
  73.  
  74. (print (concat_all '((1 2 3) (2 3 4) (4 5 6))))
  75.  
  76.  
  77. (DEFUN adancime (lista)
  78.     (COND   ((NULL lista) 0)
  79.             ((NOT (LISTP (FIRST lista))) (MAX 1 (adancime(REST lista))))
  80.             (T (MAX (+ 1 (adancime (FIRST lista))) (adancime (REST lista)) ))
  81.     )
  82. )
  83.  
  84. (print(adancime '(1 (2 (3 4 (5 5 (1))) (3 e)) 4)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement