博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Functional Programming] Church Encodings: Numberals
阅读量:5094 次
发布时间:2019-06-13

本文共 1063 字,大约阅读时间需要 3 分钟。

const log = console.log;// zero :: &fa.aconst zero = f => x => x; // zero is F// once :: &fa.faconst once = f => x => f(x); // once it I// twice :: &fa.f(fa)const twice = f => x => f(f(x));// thrice :: &fa.f(f(fa))const thrice = f => x => f(f(f(x)));const T = true;const F = false;const I = x => x;const not = x => !x;log(zero(not)(T)) // true, because only return second arguementlog(once(not)(T)) // falselog(twice(not)(F)) // falselog(thrice(not)(T)) // falselog('****')/** SUCCSOR SUCC N1 = N2SUCC N2 = N3SUCC(SUCC N1) = N3SUCC &fa.fa = &fa.f(fa)SUCC N2, then n is 2, do f n times, then add one f more*/const succ = n => f => x => f(n(f)(x));// conver chunch number to JS number.// jsnum :: take a chunch number, call (x => x + 1) n times, and start from 0.const jsnum = n => n(x => x + 1)(0);log(succ(zero)(not)(T)) // falselog(jsnum(succ(zero))) // 1log(jsnum(succ(succ(zero)))) // 2const n0 = zero;const n1 = once;const n2 = twice;const n3 = thrice;const n4 = succ(thrice);log(jsnum(succ(n2))) // 3

  

转载于:https://www.cnblogs.com/Answer1215/p/10844317.html

你可能感兴趣的文章
linux环境变量与本地变量
查看>>
css-Sprite
查看>>
关于“设计模式”和“设计程序语言”的一些闲话
查看>>
(一二九)获取文件的MineType、利用SSZipArchive进行压缩解压
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
linux使用vi浏览python源码
查看>>
客户端向服务端请求连接是出现"ssh : Connection refused"原因有哪些
查看>>
ResolveUrl的用法
查看>>
免费开源ERP成功案例分享:化学之家通过Odoo实现工业互联网转型
查看>>
[单选题]range('a', 'z')返回什么?
查看>>
python中super用法
查看>>
WCF 错误 给定关键字不在字典中
查看>>
JAVA中反射机制
查看>>
Python学习笔记(十)—— 高级特性
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
SSH框架整合 spring struts2 hibernate
查看>>
测试Location对象的Hash属性
查看>>
Python之路,第十五篇:Python入门与基础15
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>