A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2005-August/055689.html below:

[Python-Dev] PEP 342: simple example, closure alternative

[Python-Dev] PEP 342: simple example, closure alternative [Python-Dev] PEP 342: simple example, closure alternativeAndrew Koenig ark at acm.org
Fri Aug 26 05:18:43 CEST 2005
> A closure based accumulator (using Scheme):
> 
> (define (accum n)
>   (lambda (incr)
>    (set! n (+ n incr))
>    n))
> (define s (accum 0))
> (s 1) ; -> 1 == 0+1
> (s 5) ; -> 6 == 1+5
> 
> So I thought the generator version might look like:
> 
> def accum(n):
>      while 1:
>          incr = (yield n) or 0
>          n += incr

Maybe I'm missing something but this example seems needlessly tricky to me.
How about doing it this way?

	def accum(n):
		acc = [n]
		def f(incr):
			acc[0] += incr
			return acc[0]
		return f

Here, the [0] turns "read-only" access into write access to a list element.
The list itself isn't written; only its element is.



More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4