*To*: mathgroup@smc.vnet.net*Subject*: [mg10670] Re: [mg10606] strange behaviour*From*: Andrzej Kozlowski <andrzej@tuins.ac.jp>*Date*: Fri, 30 Jan 1998 04:24:08 -0500

At 4:42 AM -0500 1/26/98, Jean-Marie THOMAS wrote: >MatrixQ has a strange behaviour: > >?MatrixQ >"MatrixQ[expr] gives True if expr is a list of lists that can represent >a \ matrix, and gives False otherwise. MatrixQ[expr, test] gives True >only if \ test yields True when applied to each of the matrix elements >in expr." > >MatrixQ[{{},{}}] gives True because its argument is a list of lists of >equal length. No problem. > >Now: >NumberQ[{}] gives False because {} is not a number. I can understand >that. > >But: >MatrixQ[{{},{}},NumberQ] gives True, and this seems to me in >contradiction with the definition of MatrixQ[expr, test] > >Can somebody explain this to my stupid mind? > >----------------------------------------------- > >Jean-Marie THOMAS >Conseil et Audit en Ingenierie de Calcul jmthomas@cybercable.tm.fr >+33 (0)3 88 32 93 64 >www.cybercable.tm.fr/~jmthomas >======================= This is quite simple, I think. As there are no arguments to pass to your test Mathematica just ignores it. Your test then just becaomes MatrixQ[{{},{}}], which is True. You can do this with any test whatever, e. g. MatrixQ[{{},{}},#>3&] gives True.