package goblint

  1. Overview
  2. Docs
Static analysis framework for C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

goblint-2.8.0.tbz
sha256=9175eec0143102243964e34a0786584fd590c60422009259c705a89a27f88de4
sha512=9d760007dd8d003cf596516444ed7acc7370fc3d446e75ac71b0176522c3baae090410762f9035e7aae4f6b0e394bf28bb5b1c08ca0476920b94aa919ef04f42

doc/goblint.std/Goblint_std/GobList/index.html

Module Goblint_std.GobListSource

Sourceval combine_short : 'a list -> 'b list -> ('a * 'b) list

The normal haskell zip that throws no exception

Sourceval assoc_eq_opt : ('a -> 'a -> bool) -> 'a -> ('a * 'b) list -> 'b option
Sourceval fold_left3 : ('a -> 'b -> 'c -> 'd -> 'a) -> 'a -> 'b list -> 'c list -> 'd list -> 'a
Sourceval for_all3 : ('a -> 'b -> 'c -> bool) -> 'a list -> 'b list -> 'c list -> bool
Sourceval fold_while_some : ('a -> 'b -> 'a option) -> 'a -> 'b list -> 'a option
Sourceval equal : 'a BatOrd.eq -> 'a list BatOrd.eq
Sourceval remove_common_prefix : ('a -> 'b -> bool) -> 'a list -> 'b list -> 'a list * 'b list

remove_common_prefix eq l1 l2 removes the common prefix (p) of l1 and l2 and returns the rest of both lists a pair (l1', l2'). Formally, p @ l1' = l1 and p @ l2' = l2 such that p has maximal length.

This can be used to check being a prefix in both directions simultaneously:

  • if l1' = [], then l1 is a prefix of l2,
  • if l2' = [], then l2 is a prefix of l1.

In other cases, the common prefix is not returned (i.e. reconstructed) for efficiency reasons.

  • parameter eq

    equality predicate for elements

Sourceval until_last_with : ('a -> bool) -> 'a list -> 'a list * 'a list

Given a predicate and a list, returns two lists (l1, l2). l1 contains the prefix of the list until the last element that satisfies the predicate, l2 contains all subsequent elements. The order of elements is preserved.

Sourceval cartesian_map : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
Sourceval cartesian_filter_map : ('a -> 'b -> 'c option) -> 'a list -> 'b list -> 'c list
Sourceval cartesian_concat_map : ('a -> 'b -> 'c list) -> 'a list -> 'b list -> 'c list
Sourcemodule Syntax : sig ... end

Open this to use applicative functor/monad syntax for list.