成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對函數(shù)式編程的誤解

開發(fā) 開發(fā)工具 前端
最近,我偶然看到了這樣一篇文章:實用的純函數(shù)式編程,里面談到了函數(shù)式編程的優(yōu)勢。然而,作者的某些對函數(shù)式編程的思想認識卻讓我詫異……

最近,我偶然看到了這樣一篇文章:實用的純函數(shù)式編程,里面談到了函數(shù)式編程的優(yōu)勢。然而,作者的某些對函數(shù)式編程的思想認識卻讓我詫異:

“長期的處在命令式編程的環(huán)境世界里會讓我們養(yǎng)成一種特定的順序式的思考方式 … 而另一邊,在純函數(shù)的世界里,我們被強迫去思考的是如何變換數(shù)據(jù)。”

作者辯論說,按照代碼序列來思考程序執(zhí)行的思考方式是命令式編程語言固有的特征。文章中給出的***個“命令式”的例子是一個簡單的Java循環(huán):

1  int sum(int[] list) {
2	  int result = 0;
3	  for (int i : list)
4	    result += i;
5	  return result;
6	}

問題在于,我可以用純函數(shù)編程語言寫出相同形式的這個例子。當然,這代碼跟Haskell語言代碼不是很相似,但你要知道,Haskell并不是***的純函數(shù)編程語言。例如,下面的這段代碼:

1	int sum([int] list):
2	    result = 0
3	    for i in list:
4	        result = result + i
5	    return result

這是一個最嚴格意義上的純函數(shù)(針對相同的輸入永遠都產(chǎn)生相同的輸出,沒有邊際效應,而且具有親系透徹性(referentially transparent)的。)這個函數(shù)是純函數(shù),這是因為復合數(shù)據(jù)結(jié)構(gòu)(例如list,set,map等)具有值語義(value semantics),它們的行為跟基本數(shù)據(jù)結(jié)構(gòu)(例如int)一樣,而不是類似Java里的那種對數(shù)據(jù)的引用。

函數(shù)式風格

我認為作者在文章里把函數(shù)式語言和函數(shù)式風格(以函數(shù)為主要表達形式和計算方式)混淆了。沒錯,函數(shù)式風格更傾向于使用遞歸而不是循環(huán)。但這并不阻礙著函數(shù)式語言里使用循環(huán)結(jié)構(gòu)。

關(guān)鍵還在于,很多命令式語言里支持函數(shù)式編程風格。換句話說,它不是函數(shù)式編程語言的專利(盡管它們更適合)。我們應該清楚的區(qū)分這兩個概念,從而避免對函數(shù)式編程語言和命令式編程語言之間的不同產(chǎn)生混淆。

問題是有些人并不喜歡函數(shù)式風格。例如,我更喜歡使用循環(huán)(比如上面的sum()例子里),因為這樣更加清晰,好理解。但是,對于有些東西(例如遍歷一個列表),我認為用遞歸更好。這是我的風格。。問題是,人們通常會認為,那些具有命令式編程習慣的人應該完全的轉(zhuǎn)換成函數(shù)式編程語言風格。但事實上不需要這樣。一些主流的函數(shù)式編程語言故意給命令式編程制造障礙。如果事情能變的簡單點,人們會慢慢的轉(zhuǎn)變他們的編程習慣,而不需要形式上的強迫…

你對此有想法嗎?

英文原文鏈接:A Misconception of Functional Programming?

譯文鏈接:http://www.aqee.net/a-misconception-of-functional-programming/

責任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2013-09-09 09:41:34

2018-06-26 05:57:58

多云云計算公共云

2021-04-14 09:43:57

微服務拆分業(yè)務

2016-10-31 20:46:22

函數(shù)式編程Javascript

2011-03-08 15:47:32

函數(shù)式編程

2020-09-24 10:57:12

編程函數(shù)式前端

2025-03-11 10:00:20

Golang編程函數(shù)

2024-02-28 08:37:28

Lambda表達式Java函數(shù)式接口

2011-08-24 09:13:40

編程

2023-12-14 15:31:43

函數(shù)式編程python編程

2022-09-22 08:19:26

WebFlux函數(shù)式編程

2013-03-04 10:03:17

Python函數(shù)式編程

2013-03-05 10:01:29

Python函數(shù)式編程

2017-03-22 11:22:04

JavaScript函數(shù)式編程

2013-03-04 09:47:08

Python函數(shù)式編程

2010-06-22 13:32:26

函數(shù)式編程JavaScript

2024-04-02 08:00:00

函數(shù)式編程開發(fā)

2017-06-08 14:25:46

Kotlin函數(shù)

2017-12-21 09:34:12

工智能誤解

2013-10-14 10:18:17

SDN誤解軟件定義網(wǎng)絡
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产九九九九 | 本道综合精品 | www.久久久.com | 国产精品久久久久久久久久免费看 | 98成人网 | 成人欧美一区二区三区在线观看 | 久久久久久国产精品mv | 日韩精品在线一区 | 国产一级在线观看 | www.一区二区三区 | 国产成人精品综合 | 亚洲精品日日夜夜 | 国产一区二区 | 亚洲成人av在线播放 | 国产91精品久久久久久久网曝门 | 亚洲黄色在线免费观看 | 国产福利资源在线 | 第一色在线 | 国产精品a久久久久 | 日韩欧美在线视频 | 国产精品国产三级国产aⅴ无密码 | 一本大道久久a久久精二百 国产成人免费在线 | 香蕉国产在线视频 | 一级做a爰片久久毛片 | 欧美午夜视频 | 中文字幕在线一区二区三区 | 久久一二| 国产一级毛片视频 | 国产精品视频一二三区 | 亚洲国产欧美日韩 | 91日日 | 精品欧美一区二区在线观看 | 自拍偷拍第一页 | 久久草视频| 亚洲午夜电影 | 国产精品久久久久久久久免费丝袜 | 日韩小视频 | 国产一区二区三区高清 | 伊人欧美视频 | 精品久久久一区二区 | 91伊人 |