什么叫“语法糖”?搞懂才不怕别人装13! | 附微软官方M语法及函数手册下载

2021-08-31 16:08:02 浏览数 (1)

在微软官方M语法及函数手册(关注公众号,发送消息“M手册”即可下载)里,有两个地方提到“语法糖”(Syntactic sugar)这个词,很多朋友看到都会觉得很奇怪,“语法糖”到底是个啥呢?

其实,简单搜索一下,就能得到一大堆的解析,比如:

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

值得强调的是,语法糖的重点在于:增加程序的可读性,不是简化程序,更不是简写!

我们可以拿M语言及函数手册具体看一下。

- 1 -

let ... in ... 结构

如手册中举例:

显然,这个问题并不复杂,最终的结果是:x y z = 2 4 5 = 11。

let表达式可以看作是隐式记录表达式的语法糖,下面的表达式(装13常用

)与上面的表达式等效:

- 2 -

Each关键字

Each关键字的用法非常非常常见,在大量的操作中生成的函数公式都会带有Each ...的参数,表示对当前内容进行处理。而Each的这个用法也是一种“语法糖”,见手册原文举例:

上面官方文档里的两个例子都体现了“语法糖”形式的易懂性,但是,并不是所有的语法糖都一定是“甜”的。

比如上面的Each的用法,对于大多数操作生成的步骤来说,因为每次操作一般都只生成一种数据处理内容,所以,其用到的函数通常都是单一函数的引用,比较简单。

但是,如果需要自己写步骤公式,尤其在存在多层函数嵌套的情况下,使用简单的each _,很容易导致引用的混乱,这种情况下,更推荐统一使用(x)=>...,(y)=>...等明确区分各函数内参数的表达形式。

- 3 -

关于官方文档

对于初学者,个人建议不要急于去读官方文档,没有一定编程基础的朋友,可能会很不习惯官方文档的表达形式。但是,官方文档的确可以作为函数的查询和参考手册,毕竟pdf文件搜索起来也比较方便。

当然,如果能习惯在PQ中找帮助,那其实要找出相应函数的说明及举例也很简单:在PQ中起一个步骤,输入公式 =#shared,即可调出所有函数的清单,按需要筛选、展开查看即可。

另外,如果明确知道是哪个函数,也可以直接在PQ中起一个步骤,直接输入函数名称即可:

在学习的初期,大家可以在手册里查找函数的相关帮助和例子,当对大多数的基础函数都比较熟悉后,应逐渐习惯在PQ里直接查。

附手册下载方式:

0 人点赞