自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你從未聽說過的一種編程方式

開發(fā) 開發(fā)工具
本文將介紹一種奇特的編程方式,這些編程模式也許你從未聽說過。下面就讓我們進入正題:
本文是從A Programming Idiom You've Never Heard Of 這篇文章翻譯而來。

下面是一系列的動作:

從小屋里拿出耙子,用它把院子里的樹葉堆起來,然后把耙子放回小屋。

飛到西雅圖,看風景,然后飛回。

把鑰匙插進鑰匙孔,打開,然后取出鑰匙。

點亮你的手機,查看時間,然后把它置回睡眠狀態(tài)。

看到這些模式?jīng)]?你做一種事情,然后做另外一種事情,然后又撤銷你做的第一件事情。或者用更精確的說法,這最后的一步是第一步的反向操作。一旦你認識到這種模式,你會發(fā)現(xiàn)它無處不在。拿起茶杯,喝一口茶,放回茶杯。同樣,在程序代碼里有到處都是:

打開一個文件,讀取內(nèi)容,關(guān)閉文件。

分配一段內(nèi)存,用它做一些事情,釋放它。

把內(nèi)存地址內(nèi)容加載到寄存器,修改它,然后存回內(nèi)存。

雖然這很容易解釋,也很容易舉出例子,但想實現(xiàn)它卻不那么容易。我們需要的這種操作看起來應(yīng)該像這個樣子:idiom(Function1, Function2),于是我們上面說的打開文件的例子應(yīng)該是idiom(Open, Read)這個樣子。問題是,需要有一種程序的方法能知道這“open”的反向操作是“close”。是否有一種語言,里面的方法可以反向執(zhí)行?

也許會讓你驚訝:有。這就是J語言。我在這里反復(fù)嘮叨的這種編程模式,實際上是J語言里的一個內(nèi)置函數(shù),叫做under。在英語里,這打開文件的例子可以說成“read under open”。

“under”在J語言里一個非常常見的用處就是計算vector的數(shù)量級。算法非常簡單:平方每個元素,把值加起來,然后取平方根。哈哈,這第三步正好是第一步的反向。求和 “under” 平方。在J語言里的寫法是:

  1. mag =: +/&.:*: 

+/ is “相加”。 這&號,點號,分號序列就是“under”。*:就是“平方”。

原文鏈接:http://www.aqee.net/a-programming-idiom-you-ve-never-heard-of/

【編輯推薦】

  1. 回顧過去一年中編程語言領(lǐng)域的起起落落
  2. 編程更像是在寫作
  3. 2012紐約市長新年計劃:學(xué)習(xí)編程
  4. 十種可能改變IT行業(yè)走向的編程語言
  5. 最奇特的編程語言特征
責任編輯:林師授 來源: 外刊IT評論
相關(guān)推薦

2022-05-09 08:40:14

Python技巧代碼

2020-11-16 12:09:25

Python開發(fā)工具

2020-07-20 07:16:47

Python編程語言工具

2021-06-07 09:55:58

JavaScript開發(fā) 技巧

2025-04-17 08:10:41

2021-07-28 08:00:00

Linux操作系統(tǒng)工具

2023-11-10 08:22:09

雪花算法生成算法分布式

2020-09-13 09:03:44

數(shù)據(jù)策略數(shù)據(jù)科學(xué)數(shù)據(jù)

2016-01-27 10:26:53

JavaScript操作系統(tǒng)

2018-10-11 10:41:12

Go 開發(fā)技術(shù)

2018-09-28 07:00:03

編程語言Go語言

2016-01-26 15:33:07

JavaScriptNodeOS操作系統(tǒng)

2016-07-11 00:40:30

2022-03-21 11:50:58

醫(yī)療物聯(lián)網(wǎng)物聯(lián)網(wǎng)

2020-09-29 06:39:38

智能

2023-07-13 09:16:47

循環(huán)隊列指針front?

2021-01-20 15:20:02

JS操作符前端

2024-05-24 10:15:36

2022-09-29 08:39:37

架構(gòu)

2014-12-02 10:12:02

BaaSFacebook云服務(wù)
點贊
收藏

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