CPS风格代码(Java 8版)

package fp;

import java.util.function.IntConsumer;

public class CPS {
static int add(int x, int y) {return x + y;}
static int square(int x) {return x * x;}
static int pythagoras(int x, int y){return add(square(x), square(y));}
static void add_cps(int x, int y, IntConsumer f) {f.accept(add(x, y));}
static void square_cps(int x, IntConsumer f) {f.accept(square(x));}
static void pythagoras_cps(int x, int y, IntConsumer f) {
square_cps(x, x_squared ->
square_cps(y, y_squared ->
add_cps(x_squared, y_squared, f)));
}
public static void main(String[] args) {
System.out.println(pythagoras(3, 4)); // 25
pythagoras_cps(3, 4, x -> System.out.println(x)); // 25
}
}

CPS风格代码(Functional Java版)

package fp;

import fj.function.Effect1;

public class CPS2 {
static int add(int x, int y) {return x + y;}
static int square(int x) {return x * x;}
static int pythagoras(int x, int y){return add(square(x), square(y));}
static void add_cps(int x, int y, Effect1<Integer> f) {f.f(add(x, y));}
static void square_cps(int x, Effect1<Integer> f) {f.f(square(x));}
static void pythagoras_cps(int x, int y, Effect1<Integer> f) {
square_cps(x, x_squared ->
square_cps(y, y_squared ->
add_cps(x_squared, y_squared, f)));
}
public static void main(String[] args) {
System.out.println(pythagoras(3, 4)); // 25
pythagoras_cps(3, 4, x -> System.out.println(x)); // 25
}
}

最新文章

  1. [Unreal]学习笔记001
  2. 【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列
  3. C(++) Websocket消息推送---GoEasy
  4. Java中的匿名类
  5. zoj 3820 Building Fire Stations 树的中心
  6. iOS打包后收不到推送信息
  7. 正确使用volatile场景--状态标志
  8. SharePoint 门户网站的图片轮播-页面定制
  9. matplotlib简单的使用(二)
  10. mysql之聚合函数、group by、having
  11. linux下python安装
  12. Python分页组件
  13. VMware与Centos系统安装、重置root密码
  14. ActiveMq 总结(二)
  15. Spring 框架(一)
  16. c++11 多线程新特性学习 (1) 管理线程
  17. 很重要的处理项目url[www]
  18. 配置OpenCV报应用程序无法正常启动0xc000007b
  19. codeforces #301 div2
  20. 移动web开发基础(一)——像素

热门文章

  1. 洛谷 3706 [SDOI2017]硬币游戏——思路
  2. JWT 基础教程
  3. jmeter --自动化badboy脚本开发技术
  4. 树莓派3代B型 Raspberry Pi Model 3 B 安装 centos7系统
  5. 【python】实例-创建文件并通过键盘输入字符
  6. 【python】正则表达式-常用函数
  7. 【python】split 和 join函数
  8. WPF Demo8
  9. Android自动化框架 模拟操作 模拟测试
  10. [UE4]蓝图转换成C++代码