Advertisement
Guest User

Untitled

a guest
May 9th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.22 KB | None | 0 0
  1. (defun get-row(index list)
  2.   (nth index list))
  3.  
  4. (defun get-column(index list)
  5.   (let ((row nil))
  6.     (dolist (n list)
  7.       (setf row (cons (nth index n) row)))
  8.     (reverse row)))
  9.  
  10. (defun get-number-rows (list)
  11.   (length list))
  12.  
  13. (defun get-number-columns (list)
  14.   (length (car list)))
  15.  
  16. (defun sender (id)
  17.   (with-pmmp (id)
  18.     (let* ((matrix2 `((1 2 3) (2 3 4) (2 3 4)))
  19.           (columns (get-number-columns matrix2))
  20.           (matrix1 `((4 5 6) (1 2 3) (2 3 4))))
  21.       (loop for i from 0 to (- columns 1) do
  22.             (send 1 `list (get-column i matrix2)))
  23.       (send 1 `symbol `column)
  24.       (dolist (n matrix1)
  25.         (send 1 `list n)
  26.         (send 1 `symbol `row)))
  27.     (send 1 `end nil)))
  28.  
  29. (defun listner (id)
  30.   (with-pmmp (id)
  31.     (loop
  32.      (multiple-value-bind (data sender type) (receive nil nil)
  33.        (declare (ignorable sender))
  34.        (when (equalp type `list)
  35.          (print data))
  36.        (when (equalp data `column)
  37.          (print "column"))
  38.        (when (equalp data `row)
  39.          (print "row"))
  40.        (when (equalp type `end)
  41.          (return))))))
  42.  
  43. (defun test11 ()
  44.   (init-pmmp 2)
  45.   (set-process-function 0 #'sender)
  46.   (set-process-function 1 #'listner)
  47.   (run-pmmp))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement