Improve joinWithSeparator and intercalate documentation 10/1010/2
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 21 Sep 2017 12:25:25 +0000 (15:25 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Thu, 21 Sep 2017 12:27:04 +0000 (15:27 +0300)
refs #7490

Change-Id: Iaf856a02d806b4f1bcdc0b56c5724fbcd620dbca

bundles/org.simantics.scl.runtime/scl/Prelude.scl

index f2c24276510635390abee532e46f960547e381e9..77e62c8582215cb6a4afcd3c4d65e26275bac0f1 100644 (file)
@@ -1563,12 +1563,25 @@ printWithSeparator sb sep l = loop 0
                  (if i==0 then sb else sb << sep) <+ l!i
                  loop (i+1)
 
-"Joins the string representations of the list of values with the given separator."
+"""
+Joins the string representations of the list of values with the given separator.
+
+See [intercalate](#intercalate) for an alternative that works with Strings
+and doesn't escape its arguments.
+"""
 joinWithSeparator :: Show a => String -> [a] -> String
 joinWithSeparator separator values = runProc ( 
     StringBuilder.toString $ printWithSeparator StringBuilder.new separator values)
 
 
+"""
+The intercalate function takes a String and a list of Strings
+and concatenates the list after interspersing the first argument
+between each element of the list.
+
+See also more generic [joinWithSeparator](#joinWithSeparator)
+which escapes its arguments using `show`.
+"""
 intercalate :: String -> [String] -> String
 intercalate separator strings = do
     l = length strings