aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--theories/Strings/String.v12
2 files changed, 14 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
index 2040c1b57..e2970dfc7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -107,6 +107,8 @@ Standard Library
Coq.Numbers.DecimalString providing a type of decimal numbers, some
facts about them, and conversions between decimal numbers and nat,
positive, N, Z, and string.
+- Added [Coq.Strings.String.concat] to concatenate a list of strings
+ inserting a separator between each item
Changes from 8.7.1 to 8.7.2
===========================
diff --git a/theories/Strings/String.v b/theories/Strings/String.v
index c39b47fb1..d5852345b 100644
--- a/theories/Strings/String.v
+++ b/theories/Strings/String.v
@@ -163,6 +163,18 @@ intros n0 H; apply Rec; simpl; auto.
apply Le.le_S_n; auto.
Qed.
+(** *** Concatenating lists of strings *)
+
+(** [concat sep sl] concatenates the list of strings [sl], inserting
+ the separator string [sep] between each. *)
+
+Fixpoint concat (sep : string) (ls : list string) :=
+ match ls with
+ | nil => EmptyString
+ | cons x nil => x
+ | cons x xs => x ++ sep ++ concat sep xs
+ end.
+
(** *** Test functions *)
(** Test if [s1] is a prefix of [s2] *)