Недавно я заново обнаружил небольшой пакет Романа Мэдера, который сообщает Mathematica автоматически распределять арифметические операции и аналогичные функции над такими выражениями, как x == y. Ссылка на пакет Maeder.
Во-первых, чтобы продемонстрировать, вот пример, приведенный Мэдером:
In[1]:= Needs["EqualThread`"]
Теперь перейдите к использованию режима потоковой передачи для решения следующего уравнения для x «вручную»:
In[7]:= a == b Log[2 x]
In[8]:= %/b
Out[8]:= a/b == Log[2 x]
Теперь возведи в степень:
In[9]:= Exp[%]
Out[9]= E^(a/b) == 2 x
И разделите на 2:
In[10]:= %/2
Out[10]= (E^(a/b))/2 == x
В: С точки зрения дизайна, может ли кто-нибудь объяснить, почему Mathematica по умолчанию настроена на такое поведение? Кажется, что автоматическая многопоточность - это тип поведения, которого новичок в Mathematica ожидал - по крайней мере, для меня - - возможно, кто-то может предложить один или два примера, которые могут вызвать проблемы с системой в целом. (И не стесняйтесь указывать на любое математическое незнание ...)
Threadable
обязательно нужно сделать назначаемым атрибутом. MMA должен вести внутреннюю запись о том, какие функции являются многопоточными по сравнению с другими функциями (например,Times
потоков надPlus
, но не наоборот). - person Timo   schedule 18.04.2011