Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2009-11-05 19:29:49 -06:00
commit 8d8f539660
11 changed files with 37 additions and 8 deletions

View File

@ -3,7 +3,7 @@
USING: kernel sequences words fry generic accessors USING: kernel sequences words fry generic accessors
classes.tuple classes classes.algebra definitions classes.tuple classes classes.algebra definitions
stack-checker.state quotations classes.tuple.private math stack-checker.state quotations classes.tuple.private math
math.partial-dispatch math.private math.intervals math.partial-dispatch math.private math.intervals sets.private
math.floats.private math.integers.private layouts math.order math.floats.private math.integers.private layouts math.order
vectors hashtables combinators effects generalizations assocs vectors hashtables combinators effects generalizations assocs
sets combinators.short-circuit sequences.private locals sets combinators.short-circuit sequences.private locals
@ -290,3 +290,13 @@ CONSTANT: lookup-table-at-max 256
] [ drop f ] if ; ] [ drop f ] if ;
\ at* [ at-quot ] 1 define-partial-eval \ at* [ at-quot ] 1 define-partial-eval
: diff-quot ( seq -- quot: ( seq' -- seq'' ) )
tester '[ [ @ not ] filter ] ;
\ diff [ diff-quot ] 1 define-partial-eval
: intersect-quot ( seq -- quot: ( seq' -- seq'' ) )
tester '[ _ filter ] ;
\ intersect [ intersect-quot ] 1 define-partial-eval

View File

@ -1,7 +1,7 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays combinators grouping kernel locals math USING: accessors arrays combinators grouping kernel locals math
math.matrices math.order multiline sequence-parser sequences math.matrices math.order multiline sequences.parser sequences
tools.continuations ; tools.continuations ;
IN: compression.run-length IN: compression.run-length

View File

@ -98,6 +98,19 @@ HELP: histogram*
} }
{ $description "Takes an existing hashtable and uses " { $link histogram } " to continue counting the number of occurences of each element." } ; { $description "Takes an existing hashtable and uses " { $link histogram } " to continue counting the number of occurences of each element." } ;
HELP: sorted-histogram
{ $values
{ "seq" sequence }
{ "alist" "an array of key/value pairs" }
}
{ $description "Outputs a " { $link histogram } " of a sequence sorted by number of occurences from lowest to highest." }
{ $examples
{ $example "USING: prettyprint math.statistics ;"
""""abababbbbbbc" sorted-histogram ."""
"{ { 99 1 } { 97 3 } { 98 8 } }"
}
} ;
HELP: sequence>assoc HELP: sequence>assoc
{ $values { $values
{ "seq" sequence } { "quot" quotation } { "exemplar" "an exemplar assoc" } { "seq" sequence } { "quot" quotation } { "exemplar" "an exemplar assoc" }
@ -145,6 +158,7 @@ ARTICLE: "histogram" "Computing histograms"
{ $subsections { $subsections
histogram histogram
histogram* histogram*
sorted-histogram
} }
"Combinators for implementing histogram:" "Combinators for implementing histogram:"
{ $subsections { $subsections

View File

@ -79,6 +79,9 @@ PRIVATE>
: histogram ( seq -- hashtable ) : histogram ( seq -- hashtable )
[ inc-at ] sequence>hashtable ; [ inc-at ] sequence>hashtable ;
: sorted-histogram ( seq -- alist )
histogram >alist sort-values ;
: collect-values ( seq quot: ( obj hashtable -- ) -- hash ) : collect-values ( seq quot: ( obj hashtable -- ) -- hash )
'[ [ dup @ ] dip push-at ] sequence>hashtable ; inline '[ [ dup @ ] dip push-at ] sequence>hashtable ; inline

View File

@ -0,0 +1,2 @@
Daniel Ehrenberg
Doug Coleman

View File

@ -1,6 +1,6 @@
USING: tools.test sequence-parser unicode.categories kernel USING: tools.test sequence-parser unicode.categories kernel
accessors ; accessors ;
IN: sequence-parser.tests IN: sequences.parser.tests
[ "hello" ] [ "hello" ]
[ "hello" [ take-rest ] parse-sequence ] unit-test [ "hello" [ take-rest ] parse-sequence ] unit-test

View File

@ -3,7 +3,7 @@
USING: accessors circular combinators.short-circuit fry io USING: accessors circular combinators.short-circuit fry io
kernel locals math math.order sequences sorting.functor kernel locals math math.order sequences sorting.functor
sorting.slots unicode.categories ; sorting.slots unicode.categories ;
IN: sequence-parser IN: sequences.parser
TUPLE: sequence-parser sequence n ; TUPLE: sequence-parser sequence n ;

View File

@ -1,6 +1,6 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors c.lexer kernel sequence-parser tools.test ; USING: accessors c.lexer kernel sequences.parser tools.test ;
IN: c.lexer.tests IN: c.lexer.tests
[ 36 ] [ 36 ]

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators combinators.short-circuit USING: accessors combinators combinators.short-circuit
generalizations kernel locals math.order math.ranges generalizations kernel locals math.order math.ranges
sequence-parser sequences sorting.functor sorting.slots sequences.parser sequences sorting.functor sorting.slots
unicode.categories ; unicode.categories ;
IN: c.lexer IN: c.lexer

View File

@ -1,6 +1,6 @@
! Copyright (C) 2009 Doug Coleman. ! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: sequence-parser io io.encodings.utf8 io.files USING: sequences.parser io io.encodings.utf8 io.files
io.streams.string kernel combinators accessors io.pathnames io.streams.string kernel combinators accessors io.pathnames
fry sequences arrays locals namespaces io.directories fry sequences arrays locals namespaces io.directories
assocs math splitting make unicode.categories assocs math splitting make unicode.categories

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Doug Coleman. ! Copyright (C) 2008 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays hashtables sequence-parser USING: accessors arrays hashtables sequences.parser
html.parser.utils kernel namespaces sequences math html.parser.utils kernel namespaces sequences math
unicode.case unicode.categories combinators.short-circuit unicode.case unicode.categories combinators.short-circuit
quoting fry ; quoting fry ;