оператор ->

Форум пользователей пакета Maple

Модератор: Admin

Ausweis
Сообщения: 2
Зарегистрирован: Ср июл 23, 2008 3:29 pm

оператор ->

Сообщение Ausweis » Ср июл 23, 2008 3:36 pm

есть в мэпле такой оператор "->":
x-> f(x)
так вот по определению, слева от него можно ставить только переменные. есть ли какая-то возможность расширить это все на более сложные конструкции? самый простой пример - функцию (или лин. оператор), которая действует на индекс :
например, имея конструкцию a[x,y] я хочу задать функцию от первого индекса - "х":
a[x,y]->a[f(x),y]
В математике такое делается элементарно, а вот с мэплом я завис и не выходит

заранее сенк!

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Чт июл 24, 2008 9:54 am

В Maple оператор -> это сокращенная запись для структуры proc() ... end proc. Запрограммировать можно все, что угодно, выглядеть будет не очень понятно и красиво:

Код: Выделить всё

> (arg -> op(0, arg)[f(op(1, arg)), op(2, arg)])(a[x, y]);
        a[f(x), y]

Другой вариант:

Код: Выделить всё

> (arg -> subsop(1 = f(op(1, arg)), arg))(a[x, y]);
        a[f(x), y]

Ausweis
Сообщения: 2
Зарегистрирован: Ср июл 23, 2008 3:29 pm

Сообщение Ausweis » Чт июл 24, 2008 6:03 pm

сенк, что-то такое именно сейчас и пробую.. осталось объяснить этой гадости, что F(a+b) оно тоже должно считать (где а и b, например вышеупомянутые конструкции)..

aar
Сообщения: 100
Зарегистрирован: Чт авг 10, 2006 11:27 am

Сообщение aar » Чт июл 24, 2008 6:05 pm

?map