函数式编程的形式—函数与参量、类型的关系—类型到类型间的映射

函数式编程的基本特征之一就是 类型到类型之间的映射;

(T item) => (Y item)

(A, B, C) =>D

map(array<T> , (T item) => (Y item)) => array<Y>

moand[array<T>>]map((T item) => (Y item)) => moand[array<Y>>]

 

一、非monad类型函数

map(array<T> , (T item) => (Y item)) => array<Y>

函数所依赖的所有环境变量全部由参量传入;

所有的环境变量(多个参数)打包成一个类型(准monad类型),作为输入类型,函数的输出作为输出类型。

需要处理的主数据为准monad类型的主类型;

monad化的含义就是将主类型用其它环境变量进行包装,封装成结构体的过程;

 

二、monad类型函数

map(array<T> , (T item) => (Y item)) => array<Y>

1、将环境变量中的数据类型信息打包正一个结构体;

2、主体函数和参量中的函数参量打包成高阶函数;

将两者合并为一个monand类型;

3、将高阶函数的输出提升为monand;

 

As such, monads have been described as "programmable semicolons"; a semicolon is the operator used to chain together individual statements in many imperative programming languages,[2] thus the expression implies that extra code will be executed between the actions in the pipeline.

 

https://www.cnblogs.com/feng9exe/p/10510884.html

 

三、函数式编程本质上是对包含函数参量的函数的输入、输出进行类型变化的过程;

变换后的结果更容易进行组装;

 

 

 

输入类型—》输出类型

 

多个输入类型打包—moand化

 

posted @ 2019-06-13 15:42  zzfx  阅读(302)  评论(0编辑  收藏  举报