你从未听说过的一种编程方式

开发 开发工具
本文将介绍一种奇特的编程方式,这些编程模式也许你从未听说过。下面就让我们进入正题:
本文是从A Programming Idiom You've Never Heard Of 这篇文章翻译而来。

下面是一系列的动作:

从小屋里拿出耙子,用它把院子里的树叶堆起来,然后把耙子放回小屋。

飞到西雅图,看风景,然后飞回。

把钥匙插进钥匙孔,打开,然后取出钥匙。

点亮你的手机,查看时间,然后把它置回睡眠状态。

看到这些模式没?你做一种事情,然后做另外一种事情,然后又撤销你做的第一件事情。或者用更精确的说法,这最后的一步是第一步的反向操作。一旦你认识到这种模式,你会发现它无处不在。拿起茶杯,喝一口茶,放回茶杯。同样,在程序代码里有到处都是:

打开一个文件,读取内容,关闭文件。

分配一段内存,用它做一些事情,释放它。

把内存地址内容加载到寄存器,修改它,然后存回内存。

虽然这很容易解释,也很容易举出例子,但想实现它却不那么容易。我们需要的这种操作看起来应该像这个样子:idiom(Function1, Function2),于是我们上面说的打开文件的例子应该是idiom(Open, Read)这个样子。问题是,需要有一种程序的方法能知道这“open”的反向操作是“close”。是否有一种语言,里面的方法可以反向执行?

也许会让你惊讶:有。这就是J语言。我在这里反复唠叨的这种编程模式,实际上是J语言里的一个内置函数,叫做under。在英语里,这打开文件的例子可以说成“read under open”。

“under”在J语言里一个非常常见的用处就是计算vector的数量级。算法非常简单:平方每个元素,把值加起来,然后取平方根。哈哈,这第三步正好是第一步的反向。求和 “under” 平方。在J语言里的写法是:

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

+/ is “相加”。 这&号,点号,分号序列就是“under”。*:就是“平方”。

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

【编辑推荐】

  1. 回顾过去一年中编程语言领域的起起落落
  2. 编程更像是在写作
  3. 2012纽约市长新年计划:学习编程
  4. 十种可能改变IT行业走向的编程语言
  5. 最奇特的编程语言特征
责任编辑:林师授 来源: 外刊IT评论
相关推荐

2022-05-09 08:40:14

Python技巧代码

2020-11-16 12:09:25

Python开发工具

2020-07-20 07:16:47

Python编程语言工具

2021-06-07 09:55:58

JavaScript开发 技巧

2021-07-28 08:00:00

Linux操作系统工具

2023-11-10 08:22:09

雪花算法生成算法分布式

2020-09-13 09:03:44

数据策略数据科学数据

2016-01-27 10:26:53

JavaScript操作系统

2018-10-11 10:41:12

Go 开发技术

2018-09-28 07:00:03

编程语言Go语言

2016-01-26 15:33:07

JavaScriptNodeOS操作系统

2016-07-11 00:40:30

2022-03-21 11:50:58

医疗物联网物联网

2020-09-29 06:39:38

智能

2023-07-13 09:16:47

循环队列指针front​

2021-01-20 15:20:02

JS操作符前端

2014-12-02 10:12:02

BaaSFacebook云服务

2024-05-24 10:15:36

2022-09-29 08:39:37

架构

2020-10-09 07:54:43

PythonJava爬虫
点赞
收藏

51CTO技术栈公众号