new-graphs: starting a library that has directed and undirected graphs

db4
Alex Chapman 2008-03-16 13:25:27 +11:00
parent a020091cdf
commit 09c61d7d0a
1 changed files with 21 additions and 0 deletions

View File

@ -0,0 +1,21 @@
! Copyright (C) 2008 Alex Chapman
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs kernel new-slots sequences vectors ;
IN: new-graphs
TUPLE: graph edges ;
TUPLE: digraph ;
TUPLE: undigraph ;
: <graph> ( -- graph )
H{ } clone graph construct-boa H{ } clone over set-delegate ;
: <digraph> ( -- graph )
<graph> digraph construct-empty tuck set-delegate ;
: <undigraph> ( -- graph )
<graph> undigraph construct-empty tuck set-delegate ;
GENERIC: add-vertex ( key value graph -- )
M: graph add-vertex ( key value digraph -- ) set-at ;