Advertisement
Teammasik

Laba5_paradigmas

Apr 28th, 2023
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.53 KB | None | 0 0
  1. ;1 присоединяет к писку аргументов функтор
  2. ; member = Если элемент в списке есть, то MEMBER возвращает хвост второго аргумента, начинающийся с этого элемента.
  3. ; progn вычисляет значение последнего аргумента, тут намберп
  4. ; maplist вычисляет хвост списка
  5.  
  6.  
  7.  
  8. (print (apply '+ '(3 5) ) )
  9.  
  10. (print (funcall 'cons '(a b) '(c) ) )
  11.  
  12. (print (mapl 'cons '(apply funcall) '(3 5) ) )
  13.  
  14. (print (funcall 'apply 'member '(a (a b)) ))
  15.  
  16. (print(progn (setq a 6) (numberp `(,a b)) ) )
  17.  
  18.  
  19. ;2
  20.  
  21. ;(setq liss '(a b c d e f))
  22. (setq liss '(1 2 3 4 5 6))
  23. (setq lisf '(+ - * / -))
  24.  
  25.  
  26. (defun a-apply (f x)
  27.     (cond ((null f) nil)
  28.         ( t (cons (apply (car f) (list (car x) (cadr x))) (a-apply (cdr f) (cdr x) ) ) )
  29.     )
  30. )
  31.  
  32. ;(print ( a-apply lisf liss))
  33.    
  34. ;3
  35.  
  36. (setq pr 'symbolp)
  37. (setq ls '(a 2 f 2 8 h j j 0 s s))
  38.  
  39.  
  40. ;(print (funcall pr (car ls)))
  41.  
  42. (defun every_m3 (pr ls)
  43.     (cond ((null ls) T)
  44.         ( t ( and ( funcall pr (car ls)) (every_m3 pr (cdddr ls))))
  45.     )
  46. )
  47.  
  48. ;(print ( every_m3 pr ls))
  49.    
  50. ;4
  51. (setq fn '-)
  52. ;(setq fn 'numberp)
  53. (setq lis '((1 3 3) (3 4)))
  54. ;(setq lis '( 1 2 3 4 5))
  55.  
  56. (defun m-car (fn lis)
  57.     (cond ((null lis) nil)
  58.         ((atom (car lis)) (cons (funcall fn (car lis)) (m-car fn (cdr lis)) ) )
  59.         ((listp (car lis)) (cons (apply fn (car lis)) (m-car fn (cdr lis)) ) )
  60.     )
  61. )
  62.  
  63. ;(print ( m-car fn lis))
  64.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement