From 75780d183be071133c14d014ba8ce1cc24b0f4a9 Mon Sep 17 00:00:00 2001 From: Alex Chapman Date: Wed, 1 Oct 2008 10:57:15 +1000 Subject: [PATCH] Using inheritance instead of delegation in digraphs --- {unmaintained => extra}/digraphs/authors.txt | 0 .../digraphs/digraphs-tests.factor | 6 ++++-- {unmaintained => extra}/digraphs/digraphs.factor | 11 ++++++----- {unmaintained => extra}/digraphs/summary.txt | 0 {unmaintained => extra}/digraphs/tags.txt | 0 5 files changed, 10 insertions(+), 7 deletions(-) rename {unmaintained => extra}/digraphs/authors.txt (100%) rename {unmaintained => extra}/digraphs/digraphs-tests.factor (72%) rename {unmaintained => extra}/digraphs/digraphs.factor (87%) rename {unmaintained => extra}/digraphs/summary.txt (100%) rename {unmaintained => extra}/digraphs/tags.txt (100%) diff --git a/unmaintained/digraphs/authors.txt b/extra/digraphs/authors.txt similarity index 100% rename from unmaintained/digraphs/authors.txt rename to extra/digraphs/authors.txt diff --git a/unmaintained/digraphs/digraphs-tests.factor b/extra/digraphs/digraphs-tests.factor similarity index 72% rename from unmaintained/digraphs/digraphs-tests.factor rename to extra/digraphs/digraphs-tests.factor index b113c18ca7..64589c1a99 100644 --- a/unmaintained/digraphs/digraphs-tests.factor +++ b/extra/digraphs/digraphs-tests.factor @@ -3,7 +3,9 @@ IN: digraphs.tests : test-digraph ( -- digraph ) - { { "one" 1 } { "two" 2 } { "three" 3 } { "four" 4 } { "five" 5 } } [ first2 pick add-vertex ] each - { { "one" "three" } { "one" "four" } { "two" "three" } { "two" "one" } { "three" "four" } } [ first2 pick add-edge ] each ; + { { "one" 1 } { "two" 2 } { "three" 3 } { "four" 4 } { "five" 5 } } + [ first2 pick add-vertex ] each + { { "one" "three" } { "one" "four" } { "two" "three" } { "two" "one" } { "three" "four" } } + [ first2 pick add-edge ] each ; [ 5 ] [ test-digraph topological-sort length ] unit-test diff --git a/unmaintained/digraphs/digraphs.factor b/extra/digraphs/digraphs.factor similarity index 87% rename from unmaintained/digraphs/digraphs.factor rename to extra/digraphs/digraphs.factor index 7d56c96034..5ccc0d5a60 100755 --- a/unmaintained/digraphs/digraphs.factor +++ b/extra/digraphs/digraphs.factor @@ -1,19 +1,20 @@ ! Copyright (C) 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors assocs kernel sequences vectors ; +USING: accessors assocs hashtables hashtables.private kernel sequences vectors ; IN: digraphs -TUPLE: digraph ; -TUPLE: vertex value edges ; +TUPLE: digraph < hashtable ; : ( -- digraph ) - digraph new H{ } clone over set-delegate ; + 0 digraph new [ reset-hash ] keep ; + +TUPLE: vertex value edges ; : ( value -- vertex ) V{ } clone vertex boa ; : add-vertex ( key value digraph -- ) - >r swap r> set-at ; + [ swap ] dip set-at ; : children ( key digraph -- seq ) at edges>> ; diff --git a/unmaintained/digraphs/summary.txt b/extra/digraphs/summary.txt similarity index 100% rename from unmaintained/digraphs/summary.txt rename to extra/digraphs/summary.txt diff --git a/unmaintained/digraphs/tags.txt b/extra/digraphs/tags.txt similarity index 100% rename from unmaintained/digraphs/tags.txt rename to extra/digraphs/tags.txt