目录C#并行编程-相关概念C#并行编程-ParallelC#并行编程-TaskC#并行编程-并发集合C#并行编程-线程同步原语C#并行编程-PLINQ:声明式数据并行背景基于任务的程序设计、命令式数据并行和任务并行都要求能够支持并发更新的数组、列表和集合。在.NET Framework 4 以前,为...
虽说叫做副作用显得不太好听,但在Lisp中副作用还是非常重要的。而相对于所有状态都必须显式地操作和传递额外参数的方式,如果引进赋值和将状态隐藏在局部变量中,那么就可以用更加模块化的方式来构造系统。正如你所知道的,不用任何赋值的程序设计称为函数式程序设计。相反,广泛采用赋值的程序设计称为命令式程序设计。在C等命令式程序设计语言中,我们往往都要仔细考虑变量赋值的顺序,尤其是在循环中,但在函数式程序设计中...
分类:
其他好文 时间:
2015-03-28 11:39:13
阅读次数:
180
深入理解Java内存模型(一)——基础并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间...
分类:
编程语言 时间:
2015-03-12 09:45:41
阅读次数:
202
1.javascript怎样选中一个checkbox,怎样设置它无效?document.all.cb1[0].disabled = true;2.js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式什么?alert confirm prompt3.javaScript的2种变量范围...
分类:
编程语言 时间:
2015-03-05 01:35:49
阅读次数:
2609
许多函数式文章讲述的是组合,流水线和高阶函数这样的抽象函数式技术。本文不同,它展示了人们每天编写的命令式,非函数式代码示例,以及将这些示例转换为函数式风格。文章的第一部分将一些短小的数据转换循环重写成函数式的maps和reduces。第二部分选取长一点的循环,把他们分解成单元,然后把每个单元改成函数...
分类:
其他好文 时间:
2015-02-09 10:45:52
阅读次数:
225
《parctical common lisp》的作者曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。 不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面....
分类:
编程语言 时间:
2015-02-05 11:11:05
阅读次数:
292
问:作为一位命令式语言的使用者,为什么会突然折腾起Y组合子呢?答:的确,这事儿要从很久以前的搁浅开始说起了…上学的时候,从来没有接触过函数式语言,对其了解只停留在“函数是first-class对象,可以像普通值一样传递”,仅此而已。后来,了解到.Net家族里的F#就是一种函数式语言,于是把玩了几下就...
分类:
其他好文 时间:
2015-02-01 14:43:31
阅读次数:
186
《Practical Common Lisp》的作者 Peter Seibel曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员...
分类:
Web程序 时间:
2015-01-26 16:37:40
阅读次数:
175
12.2.1 递归的序列表达式
函数式编程中主要的控制流结构是递归。我们已经在很多例子中,写的普通函数就使用过递归,它能够解决命令式编程中的循环问题,而不需依赖可变状态。当我们想写一个简单的递归函数时,要使用 let rec 关键字,这样,就能函数以递归方式调用自身。
用于组合序列的 yield! 结构,也可以在序列表达式中执行递归调用,所以,我们同样可以使用函数编程的方法,生成序列。清...
分类:
其他好文 时间:
2015-01-21 16:37:06
阅读次数:
152