skip to main  |
      skip to sidebar
          
        
          
        
    	 		[2] MONOIDS
 		 			- a monoid is collection of items with a way of putting two items  				in the collection together, independent of what the items are
  			- in addition, a monoid has two rules: an associativity operation and an identity element
  			- define the dot operation to model function composition so  			f·g  			is a new function
  			- also  				(f·g)a   				means that we apply our new function to the argument  				a 			
  			- note that  				(f·g)a = 				g(f(a)) [1] 			
  			- now we can remove the parenthesis on the left hand side of [1] and give the new function a name such that  				(f·g) = h  			
  			- after this composition, we have to figure out what the type of  				h is, which is easy in this case: since  				f takes an  				a and returns an  				a, and  				g takes an  				a and returns an  				a, then  				h also takes an  				a  				and returns an   				a 			
  			- therefore the composition of  				f and  				g can be shown as:  				f·g = h:   				a  				 ->   				a 			
  			- this composition, the act of taking two simple things of the same  				type and have a rule to combine them into something more complex of the same type is 				basically the essence of what a monoid is 			
  		
 		 			Rules of Monoids
 			 				- [1] Associativity:  					x·(y·z) 					=  					(x·y)·z 	 				
  				- [2] Identity: 					a monoid must contain a special member such that x combined with the special member is always  					x (in F# this member is called  					unit):  					x + unit = x 				
 		 				- a monoid does not have to satisfy commutativity:  				x·y !=  				y·x  				
 	 			
		 		  	     
 
 
 
          
      
 
  
 
 
 
  
No comments:
Post a Comment