提交 cac00c2f 编写于 作者: P poorguy

add ruby

上级 3ad378d9
# Java的函数式编程
## 参考资料
1. [函数式编程思想概论](https://developer.ibm.com/zh/articles/j-understanding-functional-programming-1/)
2. [用Ruby简单模拟Lambda演算](https://www.jianshu.com/p/f1e5280f8e0b)
## 简介
函数式将计算当作数学函数的求值。对于同一个输出函数返回一致的返回值,在函数式编程中就叫做无状态或引用透明性。
\ No newline at end of file
......@@ -6,6 +6,8 @@ import java.util.List;
import java.util.stream.Collectors;
/**
* Java流式编程的实例
*
* @author 梦境迷离
* @version v1.0
* @since 2019-12-07
......
......@@ -23,7 +23,7 @@ public class Rooter {
return value;
}
// 一旦value有值,只会直接回,不会重复计算
// 一旦value有值,只会直接回,不会重复计算
public double getRoot() {
// 可变性不可能从外部被观察到
if (root == null) {
......
......@@ -3,7 +3,6 @@ package cn.edu.jxnu.reactive;
import java.io.File;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
......
# Ruby实例
没有用过Ruby,先撸点代码再说
## 参考
1. [官方20分钟体验 Ruby](https://www.ruby-lang.org/zh_cn/documentation/quickstart/)
\ No newline at end of file
# 创建匿名函数
-> x { x + 1 }
puts -> x {x+1} #本质上是创建了一个Proc对象
puts -> x {x+1}.call(100) #调用匿名函数,返回101
# 柯里化
# 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术
sum=-> (x,y,z){x+y+z}
puts sum.call(1,2,3) # 6
sum = -> (x) {
-> (y) {
-> (z) {
x + y + z
}
}
}
puts sum.call(1).call(2).call(3) # 6
puts sum[1][2][3] # 6
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册