美文网首页
4.4函数(程序):lambda

4.4函数(程序):lambda

作者: jarod_chan | 来源:发表于2015-11-21 17:09 被阅读42次

    lambda表达是创建了一个函数。

    (lambda  (arg-id ...)
        body ...+)
    

    4.4.1声明剩余参数

      (lambda rest-id
        body ...+)
    

    lambda表达是能有一个rest-id没有括号。函数能接受任意参数,参数列表和rest-id绑定。
    lambda也支持参位置参数和剩余参数。

      (lambda (arg-id ...+ . rest-id)
        body ...+)
    

    这种函数必须接受位置参数个数的参数,也接受任意数量的额外参数。

    4.4.2声明可选参数

    参数可以指定默认值。

    (lambda gen-formals
      body ...+)
      gen-formals=(arg ...)
                         |rest-id
                 |(arg ...+ . rest-id)               
                    arg=arg-id
                  |[arg-id default-expr]
    

    一个参数指定默认值以后,其后的所有参数都要指定默认值。

    4.4.3申明关键字参数

    (lambda gen-formals
      body ...+)
      gen-formals=(arg ...)
                         |rest-id
                 |(arg ...+ . rest-id)               
                    arg=arg-id
                  |[arg-id default-expr]
                          |arg-keyword arg-id
                          |arg-keyword [arg-id default-expr]
    

    使用 make-keyword-procedure可以接收关键字参数和剩余参数。

    4.4.4参数数量敏感函数

      (case-lambda
        [formals body ...+]
        ...)
        formals=(arg-id ...)
             |rest-id
             |(arg-id ...+ . rest-id)
    

    类似case语句,根据参数决定执行的方法体。case-lambda不能直接支持关键字参数和可选参数。

    相关文章

      网友评论

          本文标题:4.4函数(程序):lambda

          本文链接:https://www.haomeiwen.com/subject/zlekhttx.html