rosetta-code.top-rank: Use collect-by instead of defining it as group-by.

db4
Doug Coleman 2013-02-05 09:41:18 -08:00
parent 18b7960e09
commit 924cc23ed0
1 changed files with 2 additions and 5 deletions

View File

@ -1,7 +1,7 @@
! Copyright (c) 2012 Anonymous ! Copyright (c) 2012 Anonymous
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs fry io kernel math.parser sequences USING: accessors assocs fry io kernel math.parser sequences
sorting ; sorting math.statistics ;
IN: rosetta-code.top-rank IN: rosetta-code.top-rank
! http://rosettacode.org/wiki/Top_rank_per_group ! http://rosettacode.org/wiki/Top_rank_per_group
@ -46,11 +46,8 @@ CONSTANT: employees {
T{ employee f "Timothy Grove" "E16398" 29900 "D190" } T{ employee f "Timothy Grove" "E16398" 29900 "D190" }
} }
: group-by ( seq quot -- hash )
H{ } clone [ '[ dup @ _ push-at ] each ] keep ; inline
: prepare-departments ( seq -- departments ) : prepare-departments ( seq -- departments )
[ department>> ] group-by [ department>> ] collect-by
[ [ salary>> ] inv-sort-with ] assoc-map ; [ [ salary>> ] inv-sort-with ] assoc-map ;
: first-n-each ( seq n quot -- ) : first-n-each ( seq n quot -- )