当前位置: 首页 > news >正文

scheme中map的处理

map是处理list的一个比较简便的方式,通过map可以省去挨个对list元素的处理,强调元素表到结果表的一个变换。
(define (scale-list items factor)
(if (null? items)
nil
(cons (* (car items) factor)
(scale-list (cdr items) factor))))
(define (map proc items)
(if (null? items)
nil
(cons (proc (car items))
(map proc (cdr items)))))
如上述定义的两个函数,map和scale-list的作用是一样的,都是对表进行遍历,但map不需要挨个对元素进行操作,只要代入需要对元素进行的处理和元素表即可输出结果表。

练习2.21 过程square-list以一个数值表为参数,返回每个数的平方构成的表:

点击查看代码
;传统处理
(define (square-list items)(if (null? items)nil(cons (square (car items))(square-list (cdr items)))))
;map处理
(define (square-list items)(map (lambda (x) ( square x))items))
练习2.22 louis要重写square-list函数,化作迭代形式并输出结果,但他发现输出结果是反过来的,需要解决。 代入上一节里写的reverse函数就能解决了。

练习2.23 过程for-each和map类似,但它只从左到右应用于各个元素,将过程作用于元素得到的值都抛弃不用。

点击查看代码
> (define (for-each f items)(cond ((not (null? items))(f (car items))(for-each f (cdr items)))))
> (for-each (lambda (x) (newline) (display x))(list 57 321 88))57
321
88
http://www.jsqmd.com/news/78854/

相关文章:

  • 《Nature Communications》重磅:片上可见光GHz调制创纪录,量子计算与LiDAR应用再进一步
  • 区块链DAPP开发公司
  • STM32F103C8T6微控制器实战指南:从选型到项目开发全解析
  • 仿宋_GB2312字体下载:MAC用户的终极中文排版解决方案
  • 数据集对比
  • IDEA+mybatis实现基于MyBatis注解的学生管理程序
  • AutoTable终极指南:3分钟上手Java注解驱动数据库表自动化管理
  • Lenia完整指南:探索连续细胞自动机的数学生命世界
  • 基于微信小程序的健身运动社区的设计与实现(源码+论文+部署+安装)
  • day5 Java基础7
  • 为何机器人开始学叠衣服?六维力传感器赋予的能力正推动落地场景变革
  • MHT-FE520 光纤组合导航系统深度解析:多源融合导航的协议适配与工程实践
  • 《Nature Communications》最新研究:高效率差频产生器件赋能未来光通信与波长转换
  • 数字孪生软件开发公司
  • 终极指南:快速掌握eventpp事件处理库的8种集成方法
  • Webgl开发数字孪生项目的流程
  • SideFX Labs游戏开发工具包:从新手到专家的终极指南
  • 【每日一题】PCIe答疑 - 接大量 GPU 时主板不认设备或无法启动和MMIO的可能关系?
  • 区块链 Web3 项目开发公司
  • java基础-Java Queue 接口
  • 基于微信小程序的民宿预订系统的设计与实现(源码+论文+部署+安装)
  • 品牌营销的“防AI雷区”:MyDetector如何让你的文案和图片双保险
  • 基于Java+ vue健身房管理系统(源码+数据库+文档)
  • 对比传统分库分表:Sharding-JDBC效率提升300%的秘密
  • 如何快速掌握正点原子串口调试助手:嵌入式开发的终极指南
  • 富有的哈佛人 —— 储蓄:财富积累的第一块基石
  • 西安电子科技大学专属信纸模板:3分钟打造专业学术形象
  • 基于微信小程序的学生评教系统【源码文末联系】
  • 1小时搭建数据库性能测试原型:Sysbench快速验证
  • Rubberduck终极指南:快速提升VBA开发效率的完整解决方案