如何使用密钥获取列表的最小值/最大值

时间:2015-05-16 09:06:31

标签: lisp common-lisp

我目前有一个对象列表,每个对象都包含一个特定的属性。我想用min属性值获取列表元素。这样做有简洁的方法吗?

python等价物将类似于:min(d, key=d.get)

有没有办法获得最小/最大N个元素?

2 个答案:

答案 0 :(得分:10)

$.fn.myfunc = function(){

    $('input[type="radio"]').click(function(){
        if($(this).attr("value")=="yes"){
            $(".box").hide();
            $(".buttn").show();
        }
        if($(this).attr("value")=="no"){
            $(".box").hide();
            $(".buttn").show();
        }
     });
  });

};

CL-USER 8 > (reduce #'min '((1) (-1) (3)) :key #'first)
-1

我担心容器元素变得更加困难:

CL-USER 9 > (loop for e in '((1) (-1) (3)) minimize (first e))
-1

答案 1 :(得分:1)

使用Alexandria库提供的功能:extremum

(extremum '((a 3) (b 1) (c 2)) #'< :key #'second)
=> (B 1)