Sha256: 086f5bd7d081587ba02b72f5e5166d8d24e84cda93d1202d423deba89b3781db

Contents?: true

Size: 1.04 KB

Versions: 177

Compression:

Stored size: 1.04 KB

Contents

(** Zipper exercise interface *)
open Core.Std

(** The type of a zipper *)
type 'a t

(* You need to define an equal function *)
include Equal.S1 with type 'a t := 'a t

(* Sexp converters are also required. *)
val t_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexp.t) -> 'a t -> Sexp.t

(** Create a zipper focussed on the root node. *)
val of_tree : 'a Tree.t -> 'a t

(** Get the complete tree from a zipper. *)
val to_tree : 'a t -> 'a Tree.t

(** Get the value of the focus node. *)
val value : 'a t -> 'a

(** Get the left child of the focus node, if any. *)
val left : 'a t -> 'a t option

(** Get the right child of the focus node, if any. *)
val right : 'a t -> 'a t option

(** Get the parent of the focus node, if any. *)
val up : 'a t -> 'a t option

(** Set the value of the focus node. *)
val set_value : 'a -> 'a t -> 'a t

(** Set the left child tree of the focus node. *)
val set_left : 'a Tree.t option -> 'a t -> 'a t

(** Set the right child tree of the focus node. *)
val set_right : 'a Tree.t option -> 'a t -> 'a t

Version data entries

177 entries across 177 versions & 1 rubygems

Version Path
trackler-2.0.8.16 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.15 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.14 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.13 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.12 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.11 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.10 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.9 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.8 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.7 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.6 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.5 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.4 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.3 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.2 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.8.1 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.7.0 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.6.44 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.6.43 tracks/ocaml/exercises/zipper/zipper.mli
trackler-2.0.6.42 tracks/ocaml/exercises/zipper/zipper.mli