(vl-sort
(list (list 1 2 5 3) (list 1 2 3 4))
(function
(lambda ( a b )
(while (equal (car a) (car b))
(setq a (cdr a))
(setq b (cdr b))
)
(< (car a) (car b))
)
)
)
Just be careful there:Code: [Select]...
(while (equal (car a) (car b))
...
(defun compare-lists (a b)
(cond ((not a))
((not b) nil)
((< (car a) (car b)))
((equal (car a) (car b))
(compare-lists (cdr a) (cdr b)))
(t nil)))
(defun sort-list (lst / )
(vl-sort lst 'compare-lists))
Using recursion to check following items in lists._$ (sort-list '((1 2 5 3) (1 2 3 4) (1 7 3) (1 7 3 4) (1 2 5 3) (1 1 4 5) (1 1 4 2)))
((1 1 4 2) (1 1 4 5) (1 2 3 4) (1 2 5 3) (1 2 5 3) (1 7 3) (1 7 3 4))
(setq a (list '("100" "ba" 10) '("100" "ab" 12) '("23" "de" 4) '("88" "we" '("1234" "ps" 1) '("1234" "cd" 2)))
if i'm correct result should be("23" "de" 4) ("88" "we" ("100" "ab" 12) ("100" "ba" 10) ("1234" "cd" 2) ("1234" "ps" 1)
(setq lst
'(
("100" "ba" 10)
("100" "ab" 12)
("23" "de" 4)
("88" "we" 3)
("1234" "ps" 1)
("1234" "cd" 2)
)
)
(defun foo ( lst )
( (lambda ( n f ) (mapcar 'f lst))
(apply 'max (mapcar 'strlen lst))
(lambda (s) (while (< (strlen s) n) (setq s (strcat "0" s))) s)
)
)
(defun bar ( lst )
(foo (mapcar 'itoa lst))
)
(mapcar 'cdr
(vl-sort
(mapcar
(function (lambda (a b c d) (cons (strcat a b c) d)))
(foo (mapcar 'car lst))
(foo (mapcar 'cadr lst))
(bar (mapcar 'caddr lst))
lst
)
(function (lambda (a b) (< (car a) (car b))))
)
)
(setq lst
'(
("100B" "ba" 10)
("88" "we.F" 23)
("001" "123a" 23)
("001" "43a" 23)
("00043" "bb" 23)
("00043c" "aaa" 23)
("02" "WWW" 23)
("2A" "AA" 23)
("100A" "ab" 12)
("23" "de" 4)
("43" "we.A" 23)
("1A" "AS" 23)
("88" "we.C" 23)
("1234" "ps" 1)
("1234" "cd" 2)
("100" "Xab" 12)
("00001" "a" 23)
("100AA" "Xab" 12)
)
)
("00001" "a" 23)
("001" "43a" 23)
("001" "123a" 23)
("1A" "AS" 23)
("02" "WWW" 23)
("2A" "AA" 23)
("23" "de" 4)
("43" "we.A" 23)
("00043" "bb" 23)
("00043c" "aaa" 23)
("88" "we.C" 23)
("88" "we.F" 23)
("100" "Xab" 12)
("100A" "ab" 12)
("100AA" "Xab" 12)
("100B" "ba" 10)
("1234" "cd" 2)
("1234" "ps" 1))