Mr.*_*ard 9 wolfram-mathematica
添加了Mathematica 6 TakeWhile,其语法如下:
TakeWhile [ list,crit ] 从列表的开头给出元素e i,只要crit [e i ]为True就继续.
但是没有相应的"DropWhile"功能.可以使用LengthWhile和构建DropWhile Drop,但似乎不鼓励人们使用DropWhile.为什么是这样?
为了澄清,我不是要求一种方法来实现这个功能.相反:它为什么不存在?在我看来,除了监督之外,必须有理由让它缺席,否则现在就会纠正.DropWhile有什么低效,不合需要或多余的东西吗?
关于DropWhile的功能似乎有些含糊不清,所以这里有一个例子:
DropWhile = Drop[#, LengthWhile[#, #2]] &;
DropWhile[{1,2,3,4,5}, # <= 3 &]
Run Code Online (Sandbox Code Playgroud)
Out= {4, 5}
只是一个盲目的猜测.
有很多列表操作可能需要一段时间的标准.例如:
Total..While
Accumulate..While
Mean..While
Map..While
Etc..While
Run Code Online (Sandbox Code Playgroud)
无论如何,它们并不难构建.
我认为这些不仅仅是因为"原始"功能的数量已经增长太长,并且"是否经常需要并且难以实现并且用户具有良好性能?"的标准.在这些情况下很普遍.
Mathematica 中无处不在的列表是固定长度的向量,当它们是机器数时,它是一个压缩数组。
因此,递归定义的链表(例如在 Lisp 或 Haskell 中)的自然函数并不是 Mathematica 中的主要工具。
所以我倾向于认为这解释了为什么 Wolfram 没有完善其操作函数库。
| 归档时间: |
|
| 查看次数: |
449 次 |
| 最近记录: |