максимумы: сокращение списка аргументов функции - PullRequest
1 голос
/ 29 марта 2019

Предположим, у меня есть несколько функций, таких как g(x0,x1,x2,x3,x4) := x0+x1+x2+x3+x4+x5.Я хотел бы использовать их в других выражениях, но перечисление всех переменных x0,...,x4 явно затруднительно.Как записать это?Я попробовал что-то вроде vars : [x0,x1,..,x4], а затем передал это так g(vars), но, конечно, vars рассматривается как один аргумент в этом случае, и я получаю ошибку.Что мне нужно сделать?

РЕДАКТИРОВАТЬ: Я просил что-то немного проще.В моем случае ответом будет что-то вроде «создать псевдонимы», G1 : g1(x0,...,x4) и т. Д.Но ответ ниже подчеркивает, что полезно знать.

1 Ответ

3 голосов
/ 29 марта 2019

Вы должны использовать apply, как указано в руководстве 36.4 :

(%i1) L : [1, 5, -10.2, 4, 3];
(%o1)                 [1, 5, - 10.2, 4, 3]
(%i2) apply (min, L);
(%o2)                        - 10.2
...