zio之浅学

102 阅读1分钟

zio的编程风格以及思维浅谈

  1. 当然是函数式编程
  2. match pattern (匹配模式)
  3. 递归模式

思维浅谈

2与3一旦组合,我们能发现其实是以位为核心,这种位应当类似于波函数中的振幅,而波的传导,便是不同振幅的组合,这恰好符合function composition的自然特性。 若依热力学的变化来看,便是傅里叶变换。若依线代数学来描述,则是A = X1A1 + X2A2 + X3A3 + ...... + XnAn;

递归,则是同一频率波的不同振幅; 匹配,则是频率和相位都不听相同的波; 而函数式的作用在于输入与输出的映射关系,保持了一种稳定性 用数学的观念来说,就是可以构建起线性关系,或者说是向量。 一旦可以这样,便能应用到更多的数学知识,比如范畴论。 当然这也必须依赖Type(kind)在中间做支撑, 这样的优势是,我们可以抽象出更具有普遍性的数据处理方式。 譬如 Monoid Monad Applicative Functor Product/Sum(以数据构成关系论) 还有对effect(IO的优化 异常处理) 也能进行更好的隔离和处理

zio的结构

zio定义了三个泛型变量,R,E,A 。其定义大抵如下: {{{ R => Either[E, A] }}} 入参R 返回一个Either结果,要么Eroor 要么Answer

zio的子类

zio的子类就是我们所谓的振幅 zio犹如unit 而子类S便如 S = x * unit. zio的子类有24种之多

zio的辅助类

在zio的company object中 定义了许多的final class class中带有apply方法 乃是函数的一种wrap