“编程”概念的笔记

在看函数式编程,响应式编程的文章的时候。中文有时候都讲“编程”比较容易混淆。什么东西翻译过来都是“编程”,有些时候翻译用词又用很高深的字眼,有时候又是同级概念2333。自己会弄混,所以做些笔记好区别,大部分句子都仅是摘抄,文后有标明文章出处。在看这些个讲函数式、响应式文章之前先做的一些概念区别的笔记。

  1. 先根据英文直接先区分下面4个名词:

    1. 设计模式(Design Pattern)
    2. 编程范式(Programming Paradigm)
    3. 编程思想(Programming Thinking?)(这个我也不太确定前面有没有Programming这个词在前面,我的理解是:编程思想是一种思考问题的方式,是在真正写代码之前你考虑这个问题的方法,角度,模式;它区别于编程范式,编程语言。可能单单说是Thinking,前面不加Programming也不为过吧。)
    4. 句法(syntax)
  2. 上面名词的举例:


    例子
    1. 上面的表的一些讲解:Functional Thinking是一种编程思想,这个观点是有一篇文章讲到了的点。对应是文1貌似。
    2. Impreative Programming有两个中文译名:一个是命令式编程,另一个是指令式编程。
    3. 这里没有将Pure Functional和Functional进行区分。自己也不是看得很懂。
    4. Method Chaining的中文译名是链式编程(容易混淆)
    5. Dynamic Programming不是编程范式23333。是动态规划呀2333。它还有一个英文名Dynamic Optimization(直译:动态最优化)。
  3. 一些笔记

    1. Method Chaining不是一种编程范式。wiki上面也说这是一种句法。我的理解是Method Chaining最多可以算是一种编程技巧吧。但也不是编程范式。
    2. Functional的特性笔记:
    3. 函数是First Class
      a. 函数能作为变量的值。
      b. 函数可以作为另外一个函数的参数。
      c. 函数返回另外一个函数
    4. Pure Functional(也是Functional的一些思想)
      a. func结果只受参数影响
      b. func内部不使用会受外部改变的变量
      c. func的结果不影响外部
    5. 不可变数据。不能改变的数据。所有改动的操作都仅是值拷贝,对只进行修改后返回结果。
    6. 尾调用优化。有尾调用优化的编程语言会通过重用同一个栈来进行递归。若无往往会申请内存到满,崩掉,有优化的不会。

    “与普通递归相比,由于尾递归的调用处于方法的最后,因此方法之前所积累下的各种状态对于递归调用结果已经没有任何意义,因此完全可以把本次方法中留在堆栈中的数据完全清除,把空间让给最后的递归调用。这样的优化便使得递归不会在调用堆栈上产生堆积,意味着即时是“无限”递归也不会让堆栈溢出”。(出自文7)

    1. Functional Programming的思考方式:去掉不确定的那些因素,让同样的输入产生同样的输出。

    如何行动
    在自己的代码库中检查某些有一定复杂度的函数,跟踪它能触及的每一比特外部状态以及所有可能的状态更新。即使对它不做一点改动,把这些信息放入一个注释块就已经是极好的文档了。如果函数能够——比方说,通过渲染系统触发一次屏幕刷新,你就可以直接把手举在空中,声明这个函数所有的正副作用已经超出了人类的理解力。你要着手的下一项任务是基于实际执行的计算从头开始重新考虑这个函数。收集所有的输入,把它传给一个纯函数,然后接收结果并做相应处理。(出自文8)

    1. 响应式编程Reactive Programming是一种编程范式。是一种面向数据流的,面向变化传播的编程范式。针对数据更新相关联,举个例子:用KVO来update我们的View。
    2. 将函数式编程思想整合到响应式编程中就是函数式响应编程。
    3. 也讲下OO吧:面向对象有思考方式和面向对象编程。它的3个特性是:封装,继承,多态。抽象、接口等等更接近是OO具体的做法了。

参考文章:
文1--函数式编程解释(博乐网python版本的解释)
文2--函数式响应文章
文3《“函数式”编程 vs 编程写个函数》(Swift的filter及函数式的思考方式)
文4--百度百科FP(我觉得是文1的再次解析)
文5--讲了OOP和FP在细节上的对比。
文6--C++ 11的Lambda表达式(这货是闭包2333)
文7--尾调用优化编译器做什么
文8--用C++进行函数式编程
小补充,语法上的貌似感觉

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容