的Mathematica 6加入TakeWhile
,其具有语法:DropWhile在Mathematica中在哪里?
TakeWhile [列表,暴] 给出元件Ë我从列表的开始,继续只要暴击 [e i]是真的。
但是没有相应的“DropWhile”功能。人们可以使用LengthWhile
和Drop
来构建DropWhile,但几乎看起来好像人们不愿意使用DropWhile。为什么是这样?
为了澄清,我没有要求实现此功能的方法。相反:为什么它还不存在?在我看来,除了疏忽之外,必须有其缺席的原因,否则它现在已经得到纠正。 DropWhile有没有效率低下,不可取或多余?
似乎有大约DropWhile的功能有些含糊不清,所以这里有一个例子:
DropWhile = Drop[#, LengthWhile[#, #2]] &;
DropWhile[{1,2,3,4,5}, # <= 3 &]
Out= {4, 5}
关于“歧义”。这只是“while”一词的语言模糊性。我们应该遵循在* Mathematica *中的'While'这样的函数中使用的“while”的标准含义。所以你的问题可以改写为'list = {1,2,3,4,5}; [list [[1]] <= 3,list = Drop [list,1]]; list'。我可以看到没有任何含糊之处。 – 2011-04-07 09:35:55
@Alexey,我的编辑是回应一个答案,表明一种方法不符合上述定义。它已被删除。 – 2011-04-07 09:37:52