我爱上了鲁比。在这种语言中,所有核心功能实际上都是方法。这就是为什么我更喜欢后缀符号的原因——当我要处理的数据放在匿名处理函数体的左侧时,例如:array.map{...}
. 我相信,它的优势在于这段代码的易读性。
但是 Mathetica 具有功能性(是的,如果您愿意,它可以是程序性的)决定了一种样式,其中函数名称位于数据的左侧。正如我们在其手册中看到的那样,//
仅当它是一些简单的函数时使用,没有参数,例如list // MatrixForm
. 当 Function 需要大量参数时,编写手册的人会使用 syntax F[data]
。
没关系,但我的问题就是这种情况F[f,data]
,例如Do[function, {x, a, b}]
。大多数 Mathematica 函数(如果不是全部)的参数完全按照这个顺序 - [function, data]
,而不是[data, function]
. 由于我更喜欢使用纯函数来保持命名空间的清洁,而不是在我的笔记本中创建大量命名函数,所以参数function
可能太大——太大了,那个参数data
将放置在函数调用行之后的第 5-20 行代码中。
这就是为什么有时,当邪恶的 Ruby 天性使我受到控制时,我会以 postfix 的方式重写这些函数:
因为这对我很重要,所以纯函数(可能是大代码)是直接从处理数据中放置的。是的,我做到了,我很高兴。但是有两点:
- 这会导致 Mathematica 的高亮解析器问题:
x
in 后缀符号以蓝色突出显示,而不是青绿色; - 每次我查看 Mathematica 手册时,我都会看到这样的示例:
Do[x[[i]] = (v[[i]] - U[[i, i + 1 ;; n]].x[[i + 1 ;; n]])/ U[[i, i]], {i, n, 1, -1}];
,这意味着......地狱,他们认为它很容易阅读/支持/等等。?!
所以这两件事让我在这里问这个问题:我是不是很坏,使用我的 Ruby 风格,我应该像这些人那样编写代码,还是可以,我不必担心,应该随心所欲地写?