函数式编程的三个核心问题:计算的构建、求值、关系
函数(计算、表达式)怎么组合成具体或更大的的计算,或链条更长的计算。
二、计算的构建:
1、输入输出流的平凡构建;签名兼容的函数调用链构建;无高阶函数,构建器compose pipeline本身是高阶函数;
2、函数作为参量参与链的构建;
3、monad+高阶函数的类型推演链构建;构建的形式相当于普通数据结构的单向或双向链表;
三、求值(计算)的执行:
1、输入
1)平凡值:普通的变量
2)信号源:响应式编程中的输入;
3)异步计算:将异步计算封装为一个特殊的值;
4)io流:同步或异步的io事件或数据流;
2、计算的执行
1、显式调用:计算结构完成后显式调用计算的整体结构;
2、构建调用:在引入后继计算时,计算当前和引入计算的阶段计算结果保存进一个monand中,供后即计算使用;
3、异步或IO流注入,触发调用事件;
4、回溯调用:计算构建完毕后,由末端节点触发求值,求值请求沿着计算节点在源头触发求值;计算结构是由monad链接起来的双向链结构;
push\pull\observer;
四、构建与计算的关系:
先构建计算,再调用计算结构执行计算;构建的过程只有计算关系的构建,只有函数的组装,没有求值的过程。
边构建边计算;每引入一个计算后,就执行阶段性计算结果;计算结果保存进一个monand中,供后即计算使用;
五、同步与异步
同步:
1、无monad参与的计算构建:求值过程遵从先构建再求值的过程;
2、有moand参与的计算构建:边构建边计算,计算的输入和结构都有monand作为上下为保存。moand同事作为计算结构连接节点的作用;
异步:
moand作为封装异步数据的上下文参与计算的构建和计算的执行。
一、关系:
1、函数与函数的关系:引用、无关;
2、函数与值的关系:输入输出、上下文;
3、值与值的关系:引用、因果;
相关文章
- hive计算网页停留时长
- C#,码海拾贝(16)——求行列式值的全选主元高斯消去法,《C#数值计算算法编程》源代码升级改进版
- C#,码海拾贝(08)——埃特金(Aitken)逐步曲线插值算法,《C#数值计算算法编程》源代码升级改进版
- mysql计算时间差值,单位分钟数
- BZOJ 4765 普通计算姬 (分块 + BIT)
- 《Python游戏编程快速上手》——2.2 计算表达式
- 《编程珠玑(续)(修订版)》—第1章1.1节计算素数
- flink window的early计算
- 函数式编程将计算机计算看作表达式的求解
- 函数式编程世界观:计算、映射、流领域的描述语言
- 函数式编程思想---函数式编程思想:先构造计算树,然后执行计算树
- 函数式编程-将电脑运算视为函数的计算
- 《从问题到程序:用Python学编程和计算》——2.2 数据对象、计算和类型
- 《从问题到程序:用Python学编程和计算》——2.3 内置函数和数学函数包
- 《从问题到程序:用Python学编程和计算》——2.4 字符串
- 《从问题到程序:用Python学编程和计算》——2.5 标识符、变量和赋值
- 《从问题到程序:用Python学编程和计算》——2.6 简单脚本程序
- 《从问题到程序:用Python学编程和计算》——练习
- 习题4.5 在键盘上输入数n,编程计算sum=1-1/2!+1/3!-...(-1)n-1(1/n!)。