Mathematica中的DropWhile在哪里?

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}

Dr.*_*ius 7

只是一个盲目的猜测.

有很多列表操作可能需要一段时间的标准.例如:

Total..While  
Accumulate..While  
Mean..While  
Map..While  
Etc..While
Run Code Online (Sandbox Code Playgroud)

无论如何,它们并不难构建.

我认为这些不仅仅是因为"原始"功能的数量已经增长太长,并且"是否经常需要并且难以实现并且用户具有良好性能?"的标准.在这些情况下很普遍.


Chr*_*icz 3

Mathematica 中无处不在的列表是固定长度的向量,当它们是机器数时,它是一个压缩数组。

因此,递归定义的链表(例如在 Lisp 或 Haskell 中)的自然函数并不是 Mathematica 中的主要工具。

所以我倾向于认为这解释了为什么 Wolfram 没有完善其操作函数库。