34 lines
		
	
	
		
			700 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			700 B
		
	
	
	
		
			Factor
		
	
	
| ! Copyright (C) 2008 Slava Pestov.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: accessors classes sequences kernel namespaces
 | |
| make words math math.parser assocs ;
 | |
| IN: summary
 | |
| 
 | |
| GENERIC: summary ( object -- string )
 | |
| 
 | |
| : object-summary ( object -- string )
 | |
|     class-of name>> ;
 | |
| 
 | |
| M: object summary object-summary ;
 | |
| 
 | |
| M: sequence summary
 | |
|     [
 | |
|         dup class-of name>> %
 | |
|         " with " %
 | |
|         length #
 | |
|         " elements" %
 | |
|     ] "" make ;
 | |
| 
 | |
| M: assoc summary
 | |
|     [
 | |
|         dup class-of name>> %
 | |
|         " with " %
 | |
|         assoc-size #
 | |
|         " entries" %
 | |
|     ] "" make ;
 | |
| 
 | |
| ! Override sequence => integer instance
 | |
| M: f summary object-summary ;
 | |
| 
 | |
| M: integer summary object-summary ;
 |