加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动 > 正文

手把手介绍函数式编程:从命令式重构到函数式

发布时间:2019-09-09 23:42:14 所属栏目:移动 来源:佚名
导读:副标题#e# 本文是一篇手把手的函数式编程入门介绍,借助代码示例讲解细腻。但又不乏洞见,第一节中列举和点评了函数式种种让眼花缭乱的特质,给出了『理解函数式特质的指南针:函数式代码的核心特质就一条,无副作用』,相信这个指南针对于有积极学过挖过函

最后还差实现一段处理乐队的逻辑:删除除名字和国家之外的内容。 extract_name_and_country() 可以把这些信息提取出来:

  1. def extract_name_and_country(band): 
  2.     plucked_band = {} 
  3.     plucked_band['name'] = band['name'] 
  4.     plucked_band['country'] = band['country'] 
  5.     return plucked_band 
  6.  
  7. print pipeline_each(bands, [call(lambda x: 'Canada', 'country'), 
  8.                             call(lambda x: x.replace('.', ''), 'name'), 
  9.                             call(str.title, 'name'), 
  10.                             extract_name_and_country]) 
  11.  
  12. # => [{'name': 'Sunset Rubdown', 'country': 'Canada'}, 
  13. #     {'name': 'Women', 'country': 'Canada'}, 
  14. #     {'name': 'A Silver Mt Zion', 'country': 'Canada'}] 

extract_name_and_country() 本可以写成名为 pluck() 的通用函数。 pluck() 使用起来是这个样子:

【译注】作者这里用了虚拟语气『*本*可以』。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读