Re: strange behaviour
- 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.