常见报错提示解读

首先不得不承认的是,PQ虽然强大,但IDE却是一个非常大的槽点。没有智能感知,没有着色高亮,所以输入代码非常容易出错,但报错提示往往还让人看不懂,反正就是无法吐槽更多。
在此整理一些常见报错提示,以便对照查阅,持续更新~

先来几个大概能看懂的:
1、Expression.Error: 无法[......]

阅读全文

汉诺塔经典递归问题

在其他语言学习递归思想的时候,有一个经典的问题就是汉诺塔的解法:

当然这个在M语言中也是可以玩的,并且代码比其他任何语言都要简洁。
思路:利用递归思想,假设有n层,最上面的n-1层已经从A借助C移到B,然后将最大的盘子从A借助B移到C,最后再将n-1层从B借助A移到C,一直递归下去。M中@代[......]

阅读全文

数据三大容器:table record list

基本概念:

table

即表,这个好理解,有行有列即为table。
在excel中,要指定一个单元格我们用比如A5,而在PQ中则略有不同。每一个table都有字段名,即使你没有给字段命名,也会有默认的如"Column1""Column2"这样的命名;也有索引号,即使你没有添加索引列,也可以根据[......]

阅读全文

关键字(keyword)

什么是关键字?

如果之前对编程语言有所了解,对关键字应该不会陌生。关键字其实就是M语言内部已经使用了的标识符,比如在M中if为条件分支语句,不需要定义本身就有含义,如果我们将一个步骤命名为if,这是不允许的。因为如果可以这么做,后面的公式中根本分不清哪些if是步骤名,哪些是判断,就乱套了。官方给出[......]

阅读全文