zoukankan      html  css  js  c++  java
  • 示例:实用函数(Utilities)

    (defun single? (lst)
           (and (consp lst)
            (null (cdr lst))))

    CL-USER> (single? nil)
    NIL
    CL-USER> (single? '(a))
    T

    (defun append1 (lst obj)
           (append lst (list obj)))

    CL-USER> (append1 '(a b c d) 'e)
    (A B C D E)

    (defun map-int (fn n)
           (let ((acc nil))
             (dotimes (i n)
               (push (funcall fn i) acc))
             (nreverse acc)))
    CL-USER> (map-int #'(lambda (x) (+ x 1)) 5)

    (1 2 3 4 5)

    (defun filter (fn lst)
           (let ((acc nil))
             (dolist (x lst)
               (let ((val (funcall fn x)))
             (if val (push val acc))))
             (nreverse acc)))
    CL-USER> (filter #'(lambda (x) (+ x 1)) '(1 2 3 4 5))
    (2 3 4 5 6)
    CL-USER> (filter #'(lambda (x)
                 (and (evenp x) (+ x 10)))
             '(1 2 3 4 5))
    (12 14)

    CL-USER> (defun most (fn lst)
           (if (null lst)
               (values nil nil)
               (let* ((wins (car lst))
                  (max (funcall fn wins)))
             (dolist (obj (cdr lst))
               (let ((score (funcall fn obj)))
                 (when (> score max)
                   (setf wins obj
                     max score))))
             (values wins max))))
    MOST
    CL-USER> (most #'length '((a b) (a b c) (a)))
    (A B C)
    3

  • 相关阅读:
    Android:RelativeLayout相对布局(转)
    Android:LayoutInflater作用及使用(转)
    keepalive安装配置
    nginx 多级7层代理安装配置
    k8s使用cephfs
    haproxy安装及配置
    通过nodeSelector配置项实现pod部署至指定node
    SFTP使用key文件登录
    k8s使用ceph存储
    nginx开启gzip压缩后导致apk包下载不能正常安装
  • 原文地址:https://www.cnblogs.com/flowjacky/p/2827181.html
Copyright © 2011-2022 走看看