FP中保持纯函数编程ST 1
2016-02-21 14:47
155 查看
在FP中最重要的是保持引用的透明性,所以必须纯函数式子编程,在Haskell和scalaz(参考haskell的版本),使用了ST MONAD来方式来确保副作用的安全使用
它使用 S => (S,A)的技巧(很多人把它归为欺骗的技巧'),将可变变量(A)的引用透明化,同时ST确保在组合中(flatmap) tranform monad,确保同一时刻只有一个状态改变,所以确保了read,write等的安全
这个让我想起两个知识点 Lazy 和 state,ST的作风很像STATE MONAD,当然这些都是我的见解
具体可以看看
点击打开链接
它使用 S => (S,A)的技巧(很多人把它归为欺骗的技巧'),将可变变量(A)的引用透明化,同时ST确保在组合中(flatmap) tranform monad,确保同一时刻只有一个状态改变,所以确保了read,write等的安全
这个让我想起两个知识点 Lazy 和 state,ST的作风很像STATE MONAD,当然这些都是我的见解
具体可以看看
点击打开链接
相关文章推荐
- springMVC2 1入门程序
- JAVA IO(一)字符集与字符编码简介
- WebService调用天气接口例子
- 使用Gradle构建简单Java项目
- lua基础知识笔记
- 句柄C++
- Java排序算法--》快速排序
- C++:重载运算符避免数组越界
- SpringMVC原理
- 解读Paho MQTT源码
- 【慕课笔记】第三章 JAVA中必须了解的常用类 第2节 JAVA中基本类型和包装类之间的转换
- Java中传值和传引用的区别
- Google搜索
- 浅谈Java中的hashcode方法
- 提升算法 AdaBoost元算法 提升树算法 in Python
- 【慕课笔记】第三章 JAVA中必须了解的常用类 第1节 JAVA中的包装类
- Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
- java常量池详解
- ftp梳理
- Spring 框架的设计理念与设计模式分析