博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数式编程学习之路(10)
阅读量:6262 次
发布时间:2019-06-22

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

一些应用:

逆向调用:

一般模式里有IOC,控制反转,但这个其实是可以泛化的,未必局限于面象对象,高阶函数也一样,然后就是C#的扩展方法.

用语言我们可以这样表达:

我->吃饭  逆向后:吃饭了(我),可以看出,他们能完成相同功能,这个东西炸看没什么特别的地方,实际上非常厉害.

在编程中,前置和后置关系,通过逆向,可以泛化,从而减少代码,去除依赖,以及实现重用.

链式编程:

我认为链式编程是向函数式编程进化的第一阶段.通过紧密粘合欠个操作,形成稳定的功能块.比如

model = result.Where().First()

这样的代码,一是它不会被打乱,减少了代码重构维护引起的错误,二是内部变量被封装,流式操作只得到最开始的输入Result及最后的结果model.三是复用.,四是声明式.

当然这样的代码,在链式里不应该有复杂的参数或计算,如果能保证一个参数或一个高阶函数,那么就很好了.

隐式迭代:

比如上面的Where,循环迭代已经不需要显示处理

批处理:

这个还不知道有没有相应的概念,或者就是函数式编程本身,因为不太清楚,估且叫批处理.

比如Jquery里的

$("button").click(function(){

$("p").html("W3School");

又或者高阶函数比如Map这类的,它们把处理作用在集合元素上.很象很象管理者,这种处理泛化后,针对大量实例或大类类型的某些功能或特性处理.

又比如Sql, Linq等.

通过规则的方式,处理一组相同或不相同的对象或数据,这样的元操作足够多,并能组合起来,会产生巨大的威力.这以Sql 或JQuery为典型.选择器和操作器如果能泛化,最终会形成声明式(或自然语言式)的编程模式.比如:

html 显示

表格(表格模板).显示.取得数据.数据范围

象类似这样的,它们描述最终系统,交互,或程序功能.就象写文章,假如是一个网站或一个应用软件,最上层基本都是声明式描述出来,它可以和需求做比较好的对应.

而声明的关键字,都在底层被泛化.有些框架和库提供,有些以开发的模式形成业务关键字.

这样形成的系统,更象是一部作品.复用和应用达到了完美平衡.

 

转载地址:http://ozzpa.baihongyu.com/

你可能感兴趣的文章
绘制摆线
查看>>
c语言-操作系统实验案例
查看>>
全球首发----Tech·Ed 2006中国 实况报道。全程跟踪。(一)
查看>>
无法加载 DLL“ArcGISVersion.dll”: 找不到指定的模块
查看>>
ASP.NET MVC随想录——创建自定义的Middleware中间件
查看>>
树莓派FM广播点歌系统
查看>>
linux 格式化硬盘
查看>>
nodejs02---demo
查看>>
java21 封装Response:
查看>>
[C#]richtextbox实现行号
查看>>
无人车路测在北京or去加州?不比不知道
查看>>
Windows Embedded Standard的U盘启动
查看>>
Eclipse 反编译插件JadClipse安装
查看>>
JS判断数字字母中文
查看>>
说说设计模式~观察者模式(Observer)
查看>>
[Android Memory] Android 的 StrictMode
查看>>
UBIFS 文件系统分析1 - 磁盘结构【转】
查看>>
使用命名管道实现进程间通信
查看>>
关于linux系统如何实现fork的研究(二)【转】
查看>>
PHP判断图片格式的7种方法
查看>>