]> gitweb.factorcode.org Git - factor.git/blob - extra/benchmark/dispatch3/dispatch3.factor
Updating code for make and fry changes
[factor.git] / extra / benchmark / dispatch3 / dispatch3.factor
1 USING: sequences math mirrors splitting grouping
2 kernel make assocs alien.syntax columns
3 float-arrays bit-arrays ;
4 IN: benchmark.dispatch3
5
6 GENERIC: g ( obj -- str )
7
8 M: assoc g drop "assoc" ;
9
10 M: sequence g drop "sequence" ;
11
12 M: virtual-sequence g drop "virtual-sequence" ;
13
14 M: number g drop "number" ;
15
16 M: object g drop "object" ;
17
18 : objects ( -- seq )
19     [
20         H{ } ,
21         \ + <mirror> ,
22         V{ 2 3 } ,
23         1 ,
24         10 >bignum ,
25         { 1 2 3 } ,
26         "hello world" ,
27         SBUF" sbuf world" ,
28         V{ "a" "b" "c" } ,
29         F{ 1.0 2.0 3.0 } ,
30         "hello world" 4 tail-slice ,
31         10 f <repetition> ,
32         100 2 <sliced-groups> ,
33         "hello" <reversed> ,
34         f ,
35         { { 1 2 } { 3 4 } } 0 <column> ,
36         ?{ t f t } ,
37         B{ 1 2 3 } ,
38         [ "a" "b" "c" ] ,
39         1 [ + ] curry ,
40         123.456 ,
41         1/6 ,
42         C{ 1 2 } ,
43         ALIEN: 1234 ,
44     ] { } make ;
45
46 : dispatch-test ( -- )
47     2000000 objects [ [ g drop ] each ] curry times ;
48
49 MAIN: dispatch-test