6
$\begingroup$

Putting ??symbol in a cell and another expression in a different row of the cell returns the following error:

??symbol
1 + 2

Information::ssym: symbol 1+2 is not a symbol or a valid string pattern. >>

Information[symbol 1+2,LongForm->True]

But this does not happen with ?symbol:

?symbol
1+2

Global`symbol

3

Why does this happen?

$\endgroup$
  • 2
    $\begingroup$ Some parsing confusion on the FE? One can clearly see this since ??NDSolve followed by 1+2 on new line gives Information[NDsolve 1 + 2, LongForm -> True] but this does not show up with the short form (default) version of Information which is ? $\endgroup$ – Nasser Aug 16 '13 at 9:11
5
$\begingroup$

Somewhat tautologically we can demonstrate that the Front End parses these differently:

parseString[s_String, prep : (True | False) : True] := 
  FrontEndExecute[UndocumentedTestFEParserPacket[s, prep]] 

parseString["?Sin\n2+2"]
parseString["??Sin\n2+2"]
{BoxData[{RowBox[{"?", "Sin"}], RowBox[{"2", "+", "2"}]}], StandardForm}

{BoxData[RowBox[{"??", RowBox[{RowBox[{"Sin", "2"}], "+", "2"}]}]], StandardForm}

A question remains as to why. Without any support I am going to suppose that the behavior of ?? is desired but that it was not extended to ? because that operator is also used for PatternTest.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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