String is a Collection of characters.
variable.hs
-- String is a collection of characters str1, str2 :: String str1 = "Hello, Haskell!" str2 = "Hello PTR"
*Main> :load variable.hs [1 of 1] Compiling Main ( variable.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> str1 "Hello, Haskell!" *Main> *Main> str2 "Hello PTR" *Main> *Main>
In Haskell
String is implemented as list of characters internally.
Prelude> let hello = ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] Prelude> hello "hello world" Prelude> Prelude> :t hello hello :: [Char] Prelude> Prelude> 'h':'e':'y':' ':hello "hey hello world" Prelude>
You can define string using square
brackets (or) by using double quotes "".
Prelude> let str1 = "Hello" Prelude> let str2 = ['H', 'e', 'l', 'l', 'o'] Prelude> Prelude> str1 "Hello" Prelude> str2 "Hello" Prelude> Prelude> :t str1 str1 :: [Char] Prelude> :t str2 str2 :: [Char] Prelude> Prelude> str1 == str2 True Prelude> [1, 2, 3] == [1, 2] False
Escaping
special characters
Escape sequences in programing languages
has special meaning, For example, \n prints string in new line, \t is a tab
character etc., \ Following tables summarizes some of the escape characters in
Haskell.
Escape
Character
|
Description
|
\0
|
Null character
|
\a
|
Alert
|
\b
|
Backspace
|
\f
|
Form feed
|
\n
|
New line
|
\r
|
Carriage return
|
\t
|
Horizontal tab
|
\v
|
Vertical tab
|
\"
|
Double Quote
|
\&
|
Empty string
|
\'
|
Single Quote
|
\\
|
Backslash
|
*Main> let str1 = "Hello\nWorld" *Main> *Main> putStrLn str1 Hello World *Main> *Main> let str2 = "Hello, My Name is \"Hari krishna\"" *Main> str2 "Hello, My Name is \"Hari krishna\"" *Main> *Main> putStrLn str2 Hello, My Name is "Hari krishna" *Main>
Multiline
String literals
Some times you want to write a string
that spans multiple lines, By terminating a line with \, you can create
multiline string literals.
sample.hs
quoteOfTheDay = "It is a strange experience, that those who have left me have always \ \left places for a better quality of people. I have \ \never been a loser."
*Main> :load sample.hs [1 of 1] Compiling Main ( sample.hs, interpreted ) Ok, modules loaded: Main. *Main> *Main> quoteOfTheDay "It is a strange experience, that those who have left me have always left places for a better quality of people. I have never been a loser." *Main>
No comments:
Post a Comment