Although “String” is a predefined type (see Section 3.3), there are no special operations on strings. The reason is that “String” is just another name for “[Char]”, i.e., strings are considered as lists of characters. In addition, Curry provides a handy notation for string constants, i.e., the string constant
is identical to the character list
Thus, any operation applicable to arbitrary lists can also be applied to strings. For instance, the prelude defines an infix operator “++” to concatenate lists and the function “reverse” to reverse the order of all lists elements (similarly to conc and rev in Section 3.7). Thus, we can also use them to operate on strings:
Prelude> "Hi"++"Hi"
"HiHi"
Prelude> reverse "hello"
"olleh"