Advertisement
Guest User

Untitled

a guest
Dec 4th, 2017
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.78 KB | None | 0 0
  1. ;;; Dumb task
  2.  
  3. (defparameter input-data  (list (list 0 1 0 1 2)
  4.                                 (list 0 0 0 1 1)
  5.                                 (list 1 1 1 1 0)
  6.                                 (list 1 1 1 1 1)))
  7.  
  8. (defun number-of-same-elements (lst)
  9.   (let ((table (make-hash-table)))
  10.     (loop for elem in lst do
  11.           (multiple-value-bind (value found) (gethash elem table)
  12.             (if found
  13.               (setf (gethash elem table) (1+ value))
  14.               (setf (gethash elem table) 1))))
  15.     (loop for value being the hash-value of table
  16.           maximize value)))
  17.  
  18. (defun sort-by-the-same (lst-of-lst)
  19.   (sort (copy-seq lst-of-lst) #'> :key #'number-of-same-elements))
  20.  
  21. (format t "~{~A~%~}~%" input-data)
  22. (format t "~{~A~%~}~%" (sort-by-the-same input-data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement