zoukankan      html  css  js  c++  java
  • common-list基础知识--多值的返回与接收

    返回多值:(values 1 2 3) 

                 =>

          1
                 2
                 3

                 或: (gethash 'a x)    =>      100     T

                 都是多值返回的例子。

    多值的接收:如多接收函数多个值的返回呢?用multiple-value-bind

    (multiple-value-bind (x y) (gethash 'a x)
           (if y
               (print "true")
               (print "err")))                              =>true

    你可以通过multiple-value-call将多值应用到第二个函数上:

     (multiple-value-call #'+ (values 1 2 3))  =>  6

    (multiple-value-list (values 'a 'b 'c))  => (a b c)

    二。宏生成函数:

        (defmacro defun-u (name param  body)
           `(defun ,name ,param
              ;this is a fun named ,name
              (,@body)))

       使用宏函数生成函数:

        (defun-u getMoney (username)            ;用刚刚定义的宏生成一个函数,用来去对于用户的钱数。
              (getf username 'money))

       调用:(defvar lizhi nil)          ;定义一个叫李志的人

                (setf (getf lizhi 'money) 1000)  ;设置他有1000元

              (getMoney lizhi)              ;调用用宏生成的函数显示李志的钱。

  • 相关阅读:
    十二月第二周学习进度条
    《UML大战需求分析》阅读笔记4
    十二月第一周学习进度条
    十一月第四周学习进度条
    十一月第三周学习进度条
    十一月第二周学习进度条
    制作验证码(转)
    阅读笔记04
    课堂作业-购书问题
    阅读笔记03
  • 原文地址:https://www.cnblogs.com/chongyb/p/3382696.html
Copyright © 2011-2022 走看看