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. :)
In emacs: 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] ;-) -- https://mail.python.org/mailman/listinfo/python-list