How about just https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf
On Wed, Aug 15, 2018 at 5:38 PM David Mertz <me...@gnosis.cx> wrote: > Hmm.. link broke. Is this right? > > > https://www.google.com/url?sa=t&source=web&rct=j&url=https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf&ved=2ahUKEwi8lqHYqfDcAhXImOAKHeAzDmsQFjAEegQIBhAB&usg=AOvVaw1CZug_36-PbevItYXTb7SR > > On Wed, Aug 15, 2018, 8:35 PM David Mertz <me...@gnosis.cx> wrote: > >> Goto considered harmful. >> >> >> https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf&ved=2ahUKEwi8lqHYqfDcAhXImOAKHeAzDmsQFjAEegQIBhAB&usg=AOvVaw1CZug_36-PbevItYXTb7SR >> >> On Wed, Aug 15, 2018, 3:52 PM Jacob Solinsky <jacobsolin...@gmail.com> >> wrote: >> >>> -Jumping to a function as opposed to calling a function >>> >>> When a function is jumped to, it inherits the variables in the caller’s >>> local namespace and is free to modify them or add new local variables, >>> unlike a normal function call, wherein the caller’s namespace is >>> inaccesible. At present, the only way I know of to accomplish this is to >>> bundle all variables in the caller method’s namespace as properties of the >>> method’s instance and have the callee method modify those properties. >>> Though it is easier to read code written this way, it resulted in a great >>> deal of redundancy in the code I was writing. The task I was attempting to >>> accomplish was approximately this: >>> >>> class Verb: >>> def __init__(self, parameters): >>> self.parameters = parameters >>> def conjugate(self): >>> #Using the parameters, chose an appropriate list of >>> morphemes to prefix and suffix to the verb >>> self.morphemelist = morphemelist >>> for morpheme in self.morphemelist: >>> morpheme.mutate() >>> returnstring = ‘' >>> for morpheme in self.morphemelist: >>> returnstring = returnstring + morpheme.form >>> returnstring = returnstring >>> >>> class Morpheme: >>> def __init__(self, verb, form, precedingmorpheme, >>> succeedingmorpheme): >>> self.verb = verb >>> self.form = form >>> self.precedingmorpheme = precedingmorpheme >>> self.succeedingmorpheme = succeedingmorpheme >>> def mutate(self): >>> #Using the verb’s parameters and the type and form of >>> the preceding and succeeding morpheme, mutate this morpheme’s form so that >>> #a correct verb form is produced >>> self.form = newform >>> >>> class Ban(Morpheme): >>> def __init__(self, verb, form): >>> super().__init__(verb, ‘ban’) >>> def mutate(self): >>> #This morpheme has mutation logic unique to itself but >>> with many similarities to the default morpheme’s mutation logic >>> self.form = newform >>> >>> Each subclass of Morpheme has its own slightly different mutate method. >>> Some subclasses of Morpheme needed to access and manipulate a great deal of >>> information about the verb and their surroundings, while other subclasses’ >>> mutate methods differed little from the default. Most of the variables >>> manipulated by the mutate method are not used by any other methods of class >>> Morpheme and thus should not be made properties of the attached instance. >>> What I wish I were able to do is write many little methods that modify the >>> same set of local variables and compose them together into a complete >>> mutate method. This would be effectively equivalent to having the “jump to >>> function” calls be replaced with the text in the function’s body, like a C >>> language macrosubstitution, but without using anything like preprocessor >>> directives. >>> >>> Let foo(a, b) be the syntax to call foo(a, b), and foo(a, b)% be the >>> syntax to jump to foo(a, b) >>> >>> def foo(a): >>> return a + c >>> >>> def bar(a, c): >>> return foo(a) >>> >>> def bazz(a, c): >>> return foo(a)% >>> >>> c = 5 >>> >>> call = bar(1, 3) >>> >>> jump = bazz(1, 3) >>> >>> >>> After execution, call in the above code would be 6 and jump in the above >>> code would be 4. >>> >>> >>> _______________________________________________ >>> Python-ideas mailing list >>> Python-ideas@python.org >>> https://mail.python.org/mailman/listinfo/python-ideas >>> Code of Conduct: http://python.org/psf/codeofconduct/ >>> >> _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/