How to magically define variables and use functional notation instead of methods
I am always too lazy to look up again where it is that one can do these things. Not that I would ever use such dangerous things myself.
- Magically define variables (so that you don't have to
var('y')
) - Magically define functions (so that one doesn't need
boof.annoying_method()
, but instead can doannoying_method(boof)
)
Once it's on here, people can find it more easily and put themselves in more danger.
There is a rather old sage-devel discussion talking about implicit symbolic variable creation (http://groups.google.com/group/sage-devel/browse_thread/thread/f1286e92d4d2ce83/bfc0b357f3635435). But I don't think this exists in Sage, currently.
Why would one do those things? Methods are certainly easier to find (tab completion) than functions, and they don't pollute the name space. And why should anything become a symbolic variable that isn't up a tree by the count of three?
@Simon King - you betray your programming prowess with that question :) I agree that in the long run, it is better to do this; however, for people who have never used any command-line interface, both of these things are serious stumbling blocks. Methods aren't always easy to find, either, and pollution of the name space is in the eye of the beholder. That said, notice I say "put themselves in more danger."
@Kelvin Li - This does definitely exist, I just have forgotten what it is. Also, the thread above speaks to Simon's question, since it points out that math-specific programming languages tend to have these pre-defined - not that we should necessarily, but that it's a non-obvious question. I sure hope someone remembers this answer!
I'm not sure I understand your question. Are you talking about pre-defining things you might want to use; for example, in your init.sage file? If you're not, I don't know what you mean, since Python will complain about any symbol it doesn't recognize, and I don't believe there is a way to change that. (I could be wrong, though.)