博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apply函数用法
阅读量:7235 次
发布时间:2019-06-29

本文共 806 字,大约阅读时间需要 2 分钟。

procedure:  
(apply proc arg1 ... args) 

Proc must be a procedure and args must be a list. Calls proc with the elements of the list (append (list arg1 ...args) as the actual arguments.

(define (f x y z) (+ x y z)) ;等效:(f 1 2 3)(apply f '(1 2 3))(apply f 1 '(2 3))(apply f 1 2 '(3)) ;将发生错误: ;(apply f '(1) 2 3);(apply f '(1 2) 3);(apply f 1 '(2) 3)

(list arg1 ...)部分可以省略,也可以和args合并为一个新列表.这种设置在处理不定参数的函数时非常实用.例如下面自定义imap函数模拟map的运作:

(define (imap f x . y)  (if (null? y)       (let im ((x x))         (if (null? x)             '()             (cons (f (car x)) (im (cdr x)))))       (let im ((x x) (y y))         (if (null? x)             '()             (cons (apply f (car x) (imap car y)) (im (cdr x) (imap cdr y)))))))
(apply f (car x) (imap car y))即为体现.

 

转载于:https://www.cnblogs.com/xiangnan/p/3390855.html

你可能感兴趣的文章
国内ip地址 透明代理
查看>>
Lua1.1 Lua 的参考手册 (一)
查看>>
Lua5.0 非正式总结
查看>>
vsftpd基础详解及安装配置案例
查看>>
nginx修改上传文件大小限制
查看>>
for循环语句示例应用
查看>>
OpenLDAP集成TLS/SSL
查看>>
为什么技多不压身, 却让你更迷茫了?
查看>>
JavaScript—日期(21)
查看>>
最简单的方式教你理解大小端字节序
查看>>
Linux命令——sed
查看>>
利用Linux系统生成随机密码的10种方法
查看>>
网络异常---支付宝接口
查看>>
/proc/sys/net/bridge/bridge-nf-call-iptables
查看>>
自己动手写MiniBBS系列(基本篇)之数据库设计
查看>>
高性能HTTP加速器Varnish(性能调优篇)
查看>>
Struts 2 框架学习 第1part 基本开发流程
查看>>
STM32的两只狗儿——窗口看门狗
查看>>
ios_随手篇1_关于捕捉scrollView的滑动方向
查看>>
流水账 - 初始化hadoop服务所要使用到的命令
查看>>