编程的糖果57. λ演算对编程语言的影响
λf.λx.f x
(lambda (f) (lambda(x) (f x))
lambda { |f| lambda { |x| f[x] } }
->(f) { ->(x) {f.(x) } }
Lisp
lambda f: lambda x: (f x)
ruby
python
58. λ演算对编程语言的影响
几种我最常用的语言
PHP4 create_function()
PHP5 $func = function() {}
sub{ return sub { shift(@_) + 1;}->(shift(@_)) * 3 }->(2);
PHP
foo (double a, double b){
double square (double z) { return z * z; }
return square (a) + square (b);
}
but…
Perl
C
59. λ演算对编程语言的影响
λf.λx.f x
function(f) {return function(x) {return f(x) } }
(f) -> (x) -> f(x)
Javascript
CoffeeScript
Editor's Notes 马瘦毛长蹄子胖,两口子睡觉争热炕;
老头要在炕里头睡,老婆死叽掰列偏不让;
老头说是我拣的柴,老婆说这是我烧的抗;
老头说偏睡偏睡偏要睡,老婆说不让不让偏不让;
老头抄起了掏灰耙,老婆拿起了赶面杖;
两口子乒噔乓当打到大天亮,挺好的热炕谁也没睡上。 扯淡 —— 绝对对工作没有指导意义;黑什么,捧什么,都是玩笑话,该用啥用啥
胡抡 —— 想到哪扯到哪,随时打断,不限定固定的方向;
欢乐 —— 尽量给大家今天这个下午呢,和大家一起享受一些欢乐; 行為主義者認為自由意志只是一種幻覺,並認為人類所有的行為都是由先天與後天環境所決定,也就是先天基因加上後天環境所產生的結果,由人類所經歷過的聯想或者增強所造成。
建构主义认为知识不再是我们通常所认为的课本、文字、图片以及教师的板书和演示等对现实的准确表征,而只是一种理解和假设。
最好的培训就是互动。要掌声。
和今天的主题,编程有什么关系呢? 如果电脑能在5分钟内回答由人类测试者提出的问题,且其超过30%的回答让测试者误认为是人类所答,则电脑通过测试。
在图灵看来,如果一台机器的行为,让人类无法辨别它是机器还是人类,那么就可以认为,这台机器具有了人类智能。这种只关心外在行为,不关心内在机制的观点,后来形成了一个学派,被称为“行为主义人工智能”,图灵本人自然成为了这个学派的代表人物。 一切编程都等价于这个盒子,太神奇了。 我好像被忽悠了。。。 当我们在IF的时候,硬件上面发生了什么? program counter
计算机中提供要从存储器中取出的下一个指令地址的寄存器,通常情况下,每一个指令取出后寄存器就自动增加一步。 程序计数器,或PC。 英国计算机科学家彼得·約翰·蘭達(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。
语法盐 break; —— int num1;float pi=3.14159;num1=pi; IF 是 je 的语法糖 但是... 这玩意儿出现了。 还有很多人喜欢它。
我顿时困惑了!
这帮鬼在干什么?? 吕超的故事 艾伦·凯 发明了这个语言,他当初遭遇了什么?让他做出这样的决定?
我们不得而知。但我想尝试猜一下。 OO 是 事件模型/GUI编程 的语法糖 函数不变变量变
变量不变函数变 如果程序的某个部分变得混乱或者复杂,程序员应该设法 将其模块化、通用化。高阶函数和惰性计算便是工具箱里两个新的好工具。 高阶函数 是 流程控制的语法糖 这个问题我没有答案,期待哪位同学带给我们新的分享。 好多人,特别是长辈,在中国“一部分人统治另一部分人”就是历史的循环,人性里面的权力欲不可能被改变。
就算我们想要的“民主自由”被实现了,到最后也会是竹篮打水一场空。
他们也许是对的。但让我们从以程序员的视角看一看这件事。
虽然语法糖并没有改变图灵机的本质。但是一步步走来,随着生产效率的不断提升,
回顾我们最初的出发点,编程这件事确实被极大改变了,我们比当初穿孔的程序员不知道幸福了多少。
贪婪和自私这样的人性就算不能被改变,我们追求更好生活做出的那些努力,那也绝不会是徒劳无功。 中午的问题——
为什么用C写出来的程序能比C本身还快?
答:机床的机床