[Date Index] [Thread Index] [Author Index]
Re: What does FullForm[ ] actually do?
On 7/19/08 at 4:49 AM, siegman at stanford.edu (AES) wrote: >1) Consider Options in addition to FullForm. >To my way of thinking, FullForm and Options are both _queries_ >-- you use them to get information, in preparation for (maybe) doing >something, but not to accomplish something. Given all of the built-in queries (at least that I know about) end in "Q", it is clear neither of these were intended as queries. >You invoke them to ask, what "What will some expr do?", not to say >"Do this and tell me what you did". Neither FullForm nor Options tell you what some expression will do nor what some expression did. FullForm tells you the form of the evaluated expression. Not what it did, nor what it will do. >This seems even more obvious for Options than for FullForm -- yet >Options evaluates also. I don't at all understand why this would be an issue. Options provides a list of the options set for a specific object. That is when you do Options[Integrate] you get a list of each of the options for Integrate and their current setting. Using Integrate as an example, the only way I can see evaluation being an issue is if you did something like Options[Integrate[x,x]] Why would anyone want to do this instead of Options[Integrate]? >2) Couldn't there be an alternative and more reasonable choice for >the operation of FullForm[expr] besides just evaluate expr or don't >-- like,"Show me what the full form result would be _IF_ this expr >were evaluated" -- but don't, for God's sake, evaluate it -- I'll do >that when I'm ready to. Think about what you are asking here. How is any Mathematica function to determine what the result would be if an expression were evaluated without evaluating that expression? Keep in mind an expression can be any compound expression which can include results of external programs. And even if an expression is limited to built-in functions, the result can be literally anything that can be put on your hard drive or displayed on the screen.