Roger Hindley写的lambda演算经典书籍 Combinatory logic and lambda-calculus, originally devised in the 1920s, have since developed into linguistic tools, especially useful in programming languages. The authors' previous book served as the main reference for introductory courses on lambda-calculus for over 20 years: this version, first published in 2008, is thoroughly revised and offers an account of the subject with the same authoritative exposition. The grammar and basic properties of both combinatory logic and lambda-calculus are discussed, followed by an introduction to type-theory. Typed and untyped versions of the systems, and their differences, are covered. Lambda-calculus models, which lie behind much of the semantics of programming languages, are also explained in depth. The treatment is as non-technical as possible, with the main ideas emphasized and illustrated by examples. Many exercises are included, from routine to advanced, with solutions to most at the end of the book.
2022-03-26 20:39:26 251KB Lambda 函数式编程 计算理论 数学
1
LeNet-5手写字体识别-Keras函数式模型完整代码,可进入网址 https://www.cnblogs.com/ailex/p/9617534.html 直接查看
2022-03-20 11:03:54 21KB Keras Minist LeNet-5 函数式模型
1
函数式编程可以说是非常古老的编程方式,但是近年来函数式编程越来越受到 人们的关注。不管是 Google 力推的 Go、学术派的 Scala 与 Haskell,还是 Lisp 的新 方言 Clojure,这些新的函数式编程语言都越来越受到人们的关注。 当然不仅是后端函数式编程语言层出不穷,前端也不甘示弱。虽然前端浏览器 只支持一门语言——JavaScript,但是能支持函数式编程的 JavaScript 库越来越多, 比如 Functional JavaScript1、Underscore、lodash 等。不仅如此,还有一些能编译成 JavaScript 的语言,能让前端的函数式编程发挥到极致,例如 Haskell 的 PureScript、 Scala 的 Scalajs、Clojure 的 ClojureScript。 我两次都以 Clojure 结尾,是因为我喜欢把重点留到最后。Clojure 独特于其他 语言,它既是一门新的语言、一门函数式编程范式的语言,又流淌着古老的血液 ——Lisp2。这是我选择用 Clojure 来诠释函数式编程的原因之一。
2022-02-20 12:44:04 1.08MB 前端函数
1
很不错,讲述Python函数式编程,有兴趣的朋友可以下载看看
2022-02-20 12:26:43 519KB python
1
《JavaScript ES6函数式编程入门经典》使用JavaScript ES6带你学习函数式 编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。 目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编 程,并允许开发者编写精心设计的代码。
2022-02-09 14:00:51 46.16MB JavaSc ES6 函数式编程
1
哈斯克尔 Haskell,一种高级的,纯函数式编程语言学习 #100daysofcode挑战的一部分 学习Haskell(纯函数编程)基于项目的方法 为什么选择Haskell? 如果您正在阅读此书,则意味着您对学习Haskell感兴趣。 但是,什么使这种语言特别? 它的编程方法可以概括为五点: Haskell属于功能语言家族, 它的核心体现了纯净的概念,将带有副作用的代码与应用程序的其余部分分开, 评估模型基于懒惰, 类型由编译器静态检查。 此外,Haskell还具有一种类型系统,该类型系统比平时更强大,更具表现力, 它的多态方法基于参数(类似于Java和C#中的泛型)和类型类 为什么要使用纯函数式编程? 函数式编程是编程的样式或范例之一。 编程范例是由不同编程语言共享的一组思想和概念。 例如,Pascal和C是命令式范例的一部分,而Java和C ++将命令式范例与面向对象的
2022-01-21 22:36:51 3KB Haskell
1
# jdk7新特性 ## try-with-resources 是一种声明了`一种或多种资源的try语句`。资源是指在程序用完了之后必须要关闭的对象。try-with-resources语句保证了每个声明了的`资源在语句结束的时候都会被关闭`。任何实现了java.lang.`AutoCloseable`接口的对象,和实现了java .io .`Closeable`接口的对象,`都可以当做资源使用`。 ``` try ( InputStream is = new FileInputStream("xx"); OutputStream os = new FileOutputStream("xx") ) { //xxx //不用关闭了,JVM帮你关闭流 ``` ## 多异常统一处理 在Java 7中,catch代码块得到了升级,用以在`单个catch块中处理多个异常`。如果你要捕获多个异常并且它们包含相似的代码,使用这一特性将会减少代码重复度。 ``` try { //xxx } catch (AException | BException e) { e.printStackTrace(); } ``` 缺点是异常处理细粒度降低 ## 泛型推导 ``` List list = new ArrayList(); ``` `泛型实例`的创建可以通过`类型推断`来简化,`可以去掉`后面new部分的泛型类型,`只用`就可以了。 ## 使用ForkJoin Java 7开始引入了一种新的Fork/Join线程池,它可以执行一种特殊的任务:把一个大任务拆成多个小任务并行执行。 我们举个例子:如果要计算一个超大数组的和,最简单的做法是用一个循环在一个线程内完成: ```ascii ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ ``` 还有一种方法,可以把数组拆成两部分,分别计算,最后加起来就是最终结果,这样可以用两个线程并行执行: ```ascii ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ ``` 如果拆成两部分还是很大,我们还可以继续拆,用4个线程并行执行: ```ascii ┌─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┘ ┌─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┘ ┌─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┘ ┌─┬─┬─┬─┬─┬─┐ └─┴─┴─┴─┴─┴─┘ ``` 这就是Fork/Join任务的原理:判断一个任务是否足够小,如果是,直接计算,否则,就分拆成几个小任务分别计算。这个过程可以反复“裂变”成一系列小任务。 我们来看如何使用Fork/Join对大数据进行并行求和: ``` public class Main { public static void main(String[] args) throws Exception { // 创建2000个随机数组成的数组: long[] array = new long[2000]; long expectedSum = 0; for (int i = 0; i < array.length; i++) { array[i] = random(); expectedSum += array[i]; } System.out.println("Expected sum: " + expectedSum); // fork/join: ForkJoinTask task = new SumTask(array, 0, array.length); long startTime = System.currentTimeMillis(); Long result = ForkJoinPool.commonPool().invoke(task); long endTime = System.currentTimeMillis(); System.out.println("Fork
2022-01-13 20:03:17 1.51MB jdk8 lambda 函数式编程 stream
1
公司常用到lamda表达式,有了这个资料,走遍天下都不怕
2022-01-10 09:09:48 714KB java
1
已经讲到,Keras在构建模型方面,尤其是串联结构的模型时,使用Sequential无疑是一种比较好的选择,但是随着深度学习的不断发展,面对多种多样的模型,尤其是像GoogleNet等带有Inception结构的模型,仅仅是并联的结构是无法满足实际的需要,这种并联的网络结构往往对应着多个输出,这种时候我们往往需要选择更加通用的Functional模型,因为其的广泛性与通用性,在很多开源项目上面使用的就是这种以Model为类名的函数式模型。 本篇将会以CIFAR-10数据集的一系列操作为时间线,来学习Functional模型。https://blog.csdn.net/qq_37972530/article/details/85873949
2022-01-05 10:23:11 163.15MB CIFAR-10 Keras TensorFlow
1
Haskell函数式编程入门
2022-01-05 01:15:08 61.26MB Haskell
1