Update suitable examples and tests to use blank mode
[shapes.git] / examples / doc / graph-state.blank
blob35479843a61e26c99de8cddbc475df94e3dbf57f
1 /** This file is part of Shapes.
2  **
3  ** Shapes is free software: you can redistribute it and/or modify
4  ** it under the terms of the GNU General Public License as published by
5  ** the Free Software Foundation, either version 3 of the License, or
6  ** any later version.
7  **
8  ** Shapes is distributed in the hope that it will be useful,
9  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
10  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  ** GNU General Public License for more details.
12  **
13  ** You should have received a copy of the GNU General Public License
14  ** along with Shapes.  If not, see <http://www.gnu.org/licenses/>.
15  **
16  ** Copyright 2014 Henrik Tidefelt
17  **/
19 ##needs ..Shapes..Data / seq-support
21 ##lookin ..Shapes
22 ##lookin ..Shapes..Data
24 /** Helper function for converting a sequence to a string, with elements separated by spaces.
25  **/
26 seq_sep_string: \ seq → [seq_string [separate ` ´ seq]]
28 /** Initialize a state in the domain of undirected multigraphs. **/
29 •dst: [graph undirected:true parallel:true]
31 /** Add some nodes. **/
32 •dst.[node 'a]
33 •dst.[node 'b]
34 •dst.[node 'c]
36 /** Add some edges. **/
37 •dst.[edge 'a 'b]
38 •dst.[edge 'b 'a]
39 •dst.[edge 'b 'c]
41 g1: freeze •dst
43 IO..•stdout << `Edges in g1: ´ << [seq_sep_string g1.edges] << "{n}
45 /** Add more nodes and edges using an unnamed state. **/
46 g2: ( g1 << >>.[node 'd] << >>.[edge 'c 'd] )
48 IO..•stdout << `Edges in g2: ´ << [seq_sep_string g2.edges] << "{n}