Сортирует list-список L соответственно в предикат P от двух аргументов, так, что
P(L[k],L[k+1]) есть true для некоторых двух найденных элементов. Предикат может
быть специфицирован как имя функции или бинарный infix-инфиксный оператор, или как
lambda выражение. Если специфицирован как имя оператора, то имя заключается в
"double quotes (двойные кавычки)".
Отсортированный list-список возвращается как новый объект; аргумент L не
модифицируется. Чтобы конструкция возвращала значение, сортировка делает shallow-
поверхностную копию элементов L.
Если предикат P не есть общий порядок элементов списка L, то сортировка должна
завершиться без ошибок, но результат не определен. Функция sort сообщает об ошибке,
если предикат вычисляется во что-то другое, чем true или false.
Функция sort(L) эквивалентна функции sort(L,orderlessp). То есть по
умолчанию порядок сортировки есть ascending – в порядке ВОЗРАСТАНИЯ, как
определенный параметром orderlessp. Все атомы и выражения Maxima есть
comparable-сопоставимые под orderlessp, although-хотя это изолирует примеры
выражений, для которых параметр orderlessp не есть transitive-переходный; это есть
bug-ошибка.
Примеры:
(%i1) sort([11,-17,29b0,7.55,3,-5/2,b+a,9*c,19-3*x]);
(%o1) [-17,-5/2,3,7.55,11,2.9b1,b+a,9*c,19-3*x]
(%i2) sort([11,-17,29b0,7.55,3,-5/2,b+a,9*c,19-3*x],ordergreatp);
(%o2) [19-3*x,9*c,b+a,2.9b1,11,7.55,3,-5/2,-17]
(%i3) sort([%pi,3,4,%e,%gamma]);
(%o3) [3,4,%e,%gamma,%pi]
(%i4) sort([%pi,3,4,%e,%gamma],"<");
(%o4) [%gamma,%e,3,%pi,4]
(%i5) my_list: [[aa,hh,uu], [ee,cc], [zz,xx,mm,cc], [%pi,%e]];
(%o5) [[aa,hh,uu],[ee,cc],[zz,xx,mm,cc],[%pi,%e]]
(%i6) sort (my_list);
(%o6) [[%pi,%e],[aa,hh,uu],[ee,cc],[zz,xx,mm,cc]]
(%i7) sort(my_list,lambda([a,b],orderlessp(reverse (a),reverse(b))));
(%o7) [[%pi,%e],[ee,cc],[zz,xx,mm,cc],[aa,hh,uu]]
Функция: sqrt (x)
Квадратный корень x. Это также можно записать как x^(1/2). Смотри также
rootscontract.
Функция radexpand если true, будет причиной nth n корней. Например,
sqrt(16*x^2) даст 4*x только, если radexpand есть true.
Примеры:
(%i1) sqrt(10);
(%o1) sqrt(10)
(%i2) sqrt(10.0);
(%o2) 3.16227766016838
(%i3) sqrt(-10.0);
(%o3) 3.16227766016838*%i+1.936272657596379*10^-16
(%i4) sqrt(%pi);
(%o4) sqrt(%pi)
(%i5) ev(sqrt(%pi),float);
33