3
$\begingroup$

I have a list of matrix sequences (list of matrices) that I want to multiply, something like

mylist = {{a,b,c}, {a,b} , ...}
MapApply[Dot,list] = {a.b.c, a.b, ...}
Dot@@@mylist = {a.b.c, a.b, ...}

These work fine. However, I had wanted to use the operator form MapApply[Dot] (e.g. for postfix notation). However, both MapApply[Dot][mylist] and mylist // MapApply[Dot] fail to evaluate. This is confusing because according to the docs, "MapApply[Dot,mylist] is equivalent to MapApply[Dot][mylist]".

Is this a bug, or am I misunderstanding something?

$\endgroup$
4
  • 1
    $\begingroup$ Welcome to the Mathematica Stack Exchange. Please name the symbols starting with a lower-case character. Built-in names start with an uppercase letter. C, D , E and other symbols have predefined meanings in Mathematica. How about L // Dot @@@ # & ? $\endgroup$
    – Syed
    Feb 22, 2023 at 16:41
  • 2
    $\begingroup$ What version of Mathematica are you using? MapApply was introduced in version 13.1, and the operator form does not work in earlier versions. $\endgroup$
    – Jason B.
    Feb 22, 2023 at 16:57
  • 2
    $\begingroup$ The operator form works as expected with v13.2.1 for Mac OS X ARM (64-bit) (January 27, 2023) $\endgroup$
    – Bob Hanlon
    Feb 22, 2023 at 17:00
  • $\begingroup$ Ah thanks, I am running version 13.0. This seems to be the issue. $\endgroup$
    – Aaron
    Feb 22, 2023 at 23:56

1 Answer 1

3
$\begingroup$

MapApply was introduced in version 13.1, and in my testing all forms of it work,

MapApply[f, list]
f @@@ list
MapApply[f][list]

Interestingly the first usage also works in versions 10 through 13.0 because of the "MapApplyCompatibility" paclet, which does not contain the definition for the operator form (third usage above).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.