成员的位置
我需要找出列表的最大值及其位置(位置号)。(例如(列表1 2 3 4.5 6 1.2)
需要返回最大值=6
位置=4 (defun foo ( L / i )
(setq i -1)
(setq L (mapcar '(lambda (x) (cons x (setq i (1+ i)))) L))
(car (vl-sort L '(lambda (a b) (apply '> (mapcar 'car (list a b))))))
)
(foo '(1 2 3 4.5 6 1.2)) >> (6 . 4)
另一个
(defun fam ( l / m)
(cons
(Setq m(car (vl-sort l '>)))
(vl-position m l)
)
) 另一个:
(defun foo ( l / m)
(cons
(setq m (apply 'max l))
(vl-position m (mapcar 'float l))
)
)
但结果不同:
(foo ( LIST 1 2 3 4.5 6 1.2)) >> (6.0 . 4) 也许这个ziele_o2k
(defun foo ( l / m)
(cons
(vl-some '(lambda (n )
(if (setq i (vl-position n l)) n))
(list (setq m (apply 'max l)) (fix m)))
i
)
) 你好
为什么6排在第四位?
您知道vl位置函数返回一个基于零的整数吗? OP的要求也是如此
我的回复被转发给OP,我知道你知道这一点。 我可能会采取这种方法:
(defun foo ( l / i m )
(setq m (apply 'max l) i -1)
(vl-some '(lambda ( x ) (setq i (1+ i)) (if (equal x m 1e- (cons x i))) l)
)
在涉及双打的情况下,我不喜欢依赖会员/vl的位置。
说得好,在建立初始列表时,可能会删除或避免双重?
(Defun fam ( l / i m n l)
(cons
(setqi -1m (Car (vl-sort l '>)))
(while(/= m n)
(setq n (car l) i (1+ i) l (Cdr l)) i)
)
)
页:
[1]
2