Guest User

Untitled

a guest
Feb 20th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. (print (DO ( (l '(THIS IS A LIST) (REST l))
  2. (result NIL) )
  3. ((NULL L) result)
  4. (SETF result (CONS (FIRST l) result))
  5. )
  6.  
  7. )
  8.  
  9. (defun power (a b)
  10. (do ((i 0 (+ i 1))
  11. (result 1))
  12. ((> i (- b 1)) result)
  13. (setf result (* result a))
  14. ))
  15.  
  16. (defun power2 (a b)
  17. (LET ((i 0) (result 1))
  18. (loop
  19. (if (= i b) (return result))
  20. (setf result (* result a) i (+ i 1))
  21. )
  22. )
  23. )
  24.  
  25. (defun power3 (a b)
  26. (Let ((i 0) (rez 1))
  27. (PROG ((rez 1))
  28. cic (IF (= i b) (RETURN rez))
  29. (SETF rez (* rez a) i (+ i 1))
  30. (GO cic)
  31. )))
  32.  
  33. (defun factorial (n)
  34. (LET ((i 1) (result 1))
  35. (loop
  36. (if (> i n) (return result))
  37. (setf result (* result i) i (+ i 1))
  38. )
  39. )
  40. )
  41.  
  42. (defun firstn (n list)
  43.  
  44. (DO ( (l list (REST l)) (i 0) (result NIL) )
  45. ((or (NULL L) (= i n)) result)
  46. (SETF result (append result (list (car l)) ) i (+ i 1))
  47. )
  48. )
  49.  
  50. (defun flatten (lista)
  51. (Let ((result nil))
  52. (COND ( (endp lista) result )
  53. ((atom (car lista)) (append (append result (list (car lista))) (flatten(cdr lista))))
  54. (T (append (append result (flatten(car lista))) (flatten(cdr lista))))
  55. )
  56. )
  57. )
  58.  
  59.  
  60. (defun flatten2 (lista)
  61. (Let ((result nil)(stiva nil))
  62. (Loop ( (and (endp lista) (endp stiva)) result )
  63. ((cond ((atom (car lista)) (setf result (append result (list (car lista)))) (setf lista (rest lista)))
  64. ((endp lista) (setf lista (car stiva)) (setf stiva (cdr stiva)))
  65. (T (append stiva (cdr lista)) (setf lista (car lista))
  66. )
  67. )
  68. )
  69. )
  70.  
  71.  
  72. ))
Add Comment
Please, Sign In to add comment