Mathematica 6 добавил TakeWhile
, который имеет синтаксис:
TakeWhile [ список , крит ]
дает элементы e i с начала списка , продолжающиеся до тех пор, пока crit [e i ] Правда.
Однако соответствующей функции DropWhile нет. Можно создать DropWhile, используя LengthWhile
и Drop
, но кажется, что вам не рекомендуется использовать DropWhile. Почему это?
Чтобы уточнить, я не прошу способ реализовать эту функцию. Скорее: почему его еще нет? Мне кажется, что для его отсутствия должна быть какая-то иная причина, кроме недосмотра, иначе это уже было бы исправлено. Есть ли в DropWhile что-то неэффективное, нежелательное или лишнее?
Кажется, есть некоторая двусмысленность относительно функции DropWhile, так что вот пример:
DropWhile = Drop[#, LengthWhile[#, #2]] &;
DropWhile[{1,2,3,4,5}, # <= 3 &]
Out= {4, 5}