Sha256: 0fdeb8bfcd0238576751e8e1076185f3fb930aa8791637d6164eae4409d081e3

Contents?: true

Size: 796 Bytes

Versions: 396

Compression:

Stored size: 796 Bytes

Contents

module DotDsl

type Attribute = string * string

type Element =
    | Attr of Attribute
    | Node of string * Attribute list
    | Edge of string * string * Attribute list

type Graph = Element list

let graph children = children |> List.sort

let attr key value = Attr (key, value)
let node key attrs = Node (key, attrs)
let edge left right attrs = Edge (left, right, attrs)

let isAttr element =
    match element with
    | Attr _ -> Some element
    | _      -> None

let isNode element =
    match element with
    | Node _ -> Some element
    | _      -> None

let isEdge element =
    match element with
    | Edge _ -> Some element
    | _      -> None

let attrs graph = List.choose isAttr graph
let nodes graph = List.choose isNode graph
let edges graph = List.choose isEdge graph

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.179 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.178 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.177 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.176 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.175 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.174 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.173 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.172 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.171 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.170 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.169 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.167 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.166 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.165 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.164 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.163 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.162 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.161 tracks/fsharp/exercises/dot-dsl/Example.fs
trackler-2.2.1.160 tracks/fsharp/exercises/dot-dsl/Example.fs