@@ -0,0 +1,41 @@
1+module Main
2+
3+emptyString : String
4+emptyString = ""
5+
6+helloWorld : String
7+helloWorld = "hello world!"
8+
9+spaceOnly : String
10+spaceOnly = " "
11+
12+tabOnly : String
13+tabOnly = "\t"
14+
15+linebreakOnly : String
16+linebreakOnly = "\n"
17+
18+all : Vect String 5
19+all =
20+ [ emptyString
21+ , helloWorld
22+ , spaceOnly
23+ , tabOnly
24+ , linebreakOnly
25+ ]
26+
27+lengthAll : Nat
28+lengthAll = Strings.length $ foldl (++) (head all) (tail all)
29+
30+sumOfAllLengths : Nat
31+sumOfAllLengths = foldl (\ l, s => l + (Strings.length s)) (Strings.length $ head all) (tail all)
32+
33+
34+main : IO ()
35+main = do putStrLn $ "length of: '" ++ emptyString ++ "' is: " ++ (show $ length emptyString)
36+ putStrLn $ "length of: '" ++ helloWorld ++ "' is: " ++ (show $ length helloWorld)
37+ putStrLn $ "length of: '" ++ spaceOnly ++ "' is: " ++ (show $ length spaceOnly)
38+ putStrLn $ "length of: '" ++ tabOnly ++ "' is: " ++ (show $ length tabOnly)
39+ putStrLn $ "length of: '" ++ linebreakOnly ++ "' is: " ++ (show $ length linebreakOnly)
40+ putStrLn $ "length of all matches sum of all lengths: " ++ (show $ lengthAll == sumOfAllLengths)
41+