函数式编程的形式—函数与参量、类型的关系—类型到类型间的映射
函数式编程的基本特征之一就是 类型到类型之间的映射;
(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化