--- Some generic helper definitions.
module Logic.Extra;

open import Stdlib.Data.Nat.Ord;
open import Stdlib.Prelude;

--- Concatenates a list of strings
--- ;concat (("a" :: nil) :: "b" :: nil); evaluates to ;"a" :: "b" :: nil;
concat : List StringString;
concat := foldl (++str) "";

--- It inserts the first ;String; at the beginning, in between, and at the end of the second list
surround : StringList StringList String;
surround x xs := (x :: intersperse x xs) ++ x :: nil;

--- It inserts the first ;String; in between the ;String;s in the second list and concatenates the result
intercalate : StringList StringString;
intercalate sep xs := concat (intersperse sep xs);
Last modified on 2023-05-08 11:40 UTC