Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / basis / summary / summary.factor
blob44e5374dc52d7a6cd53f2ebddc25aaa4ca1eb899
1 ! Copyright (C) 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors classes sequences kernel namespaces
4 make words math math.parser assocs ;
5 IN: summary
7 GENERIC: summary ( object -- string )
9 : object-summary ( object -- string )
10     class name>> " instance" append ;
12 M: object summary object-summary ;
14 M: sequence summary
15     [
16         dup class name>> %
17         " with " %
18         length #
19         " elements" %
20     ] "" make ;
22 M: assoc summary
23     [
24         dup class name>> %
25         " with " %
26         assoc-size #
27         " entries" %
28     ] "" make ;
30 ! Override sequence => integer instance
31 M: f summary object-summary ;
33 M: integer summary object-summary ;