add map codealong dump
This commit is contained in:
		
							parent
							
								
									f2e462842e
								
							
						
					
					
						commit
						46da504eba
					
				
					 1 changed files with 40 additions and 0 deletions
				
			
		
							
								
								
									
										40
									
								
								slides/map_example_codealong.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								slides/map_example_codealong.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,40 @@ | ||||||
|  | # Computer scientists love the Fibonacci sequence | ||||||
|  | # [https://en.wikipedia.org/wiki/Fibonacci_sequence], possibly | ||||||
|  | # described by Acharya Pingala in छन्दःशास्त्र (Chhandaḥśāstra). | ||||||
|  | # | ||||||
|  | # The basic definition is that the next item in the sequence | ||||||
|  | # if the sum of the two preceding items, and the two initial | ||||||
|  | # items and 0 and 1. | ||||||
|  | # | ||||||
|  | # We end up with [0, 1, 1, 2, 3, 5, 8, 13, ...] | ||||||
|  | 
 | ||||||
|  | def fibbo(n): | ||||||
|  |     match n: | ||||||
|  |         case 0 | 1: | ||||||
|  |             return n | ||||||
|  |         case _: | ||||||
|  |             return fibbo(n-1) + fibbo(n-2) | ||||||
|  | 
 | ||||||
|  | # For example: the first few items in the sequence: | ||||||
|  | for n in range(36): | ||||||
|  |     print(n, fibbo(n)) | ||||||
|  | 
 | ||||||
|  | # A (nowadays) less commonly used way to construct the mapping | ||||||
|  | # from n to fibbo(n) is to use the map function. | ||||||
|  | # map returns a generator, and we call list to collect the numbers: | ||||||
|  | sequence = list(map(fibbo, range(36))) | ||||||
|  | print(sequence) | ||||||
|  | 
 | ||||||
|  | # To split the work between multiple Python processes, we can | ||||||
|  | # use the multiprocessing module: | ||||||
|  | import multiprocessing | ||||||
|  | 
 | ||||||
|  | pool = multiprocessing.Pool() | ||||||
|  | sequence = pool.map(fibbo, range(36)) | ||||||
|  | print(sequence) | ||||||
|  | 
 | ||||||
|  | # We may use 'with' to clean up the pool after we're done with | ||||||
|  | # the workers: | ||||||
|  | with multiprocessing.Pool(10) as pool: | ||||||
|  |     sequence = pool.map(fibbo, range(36)) | ||||||
|  | print(sequence) | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue