rustompmody at gmail.com
Fri Sep 11 17:55:50 CEST 2015
On Friday, September 11, 2015 at 12:53:28 AM UTC+5:30, Grant Edwards wrote:
> On 2015-09-10, Steven D'Aprano wrote:
> > I have a function which is intended for use at the interactive interpreter,
> > but may sometimes be used non-interactively. I wish to change it's output
> > depending on the context of how it is being called.
> Sounds like an excellent way to waste somebody's afternoon when they
> start to troubleshoot code that's using your function. Over and over
> and over we tell newbies who have questions about what something
> returns or how it works
> "Start up an interactive session, and try it!".
> If word gets out about functions like yours, we sort of end up looking
> like twits.
> > If I did this thing, would people follow me down the street booing
> > and jeering and throwing things at me?
> Only the people who use your function. :)
You can make a function a 'command' by putting an (interactive) into it.
And then in the function if you check interactive-p (nowadays more fashionably
'called-interactively-p' ) then it can figure out whether it was called from
elisp or from emacs (top level)... and then change behavior accordingly.
IOW this behavior is quite routine in emacs-land
The norm being
- Some functions are meant to be called only from Lisp
- Some functions (commands) only from emacs
- And then there are the 'Steven-functions'
I find it curious that the people getting upset about this are all the
emacs users [as far as I know] ;-)
More information about the Python-list