break function creates
a tuple of two lists from the original one separated at condition boundary
*Main> :t break
break :: (a -> Bool)
-> [a] -> ([a], [a])
*Main> break (3==) [1,2,3,4,5] ([1,2],[3,4,5]) *Main> *Main> break (0>=) [1,2,3,4,5] ([1,2,3,4,5],[]) *Main> *Main> break (4>=) [1,2,3,4,5] ([],[1,2,3,4,5]) *Main> *Main> break (4>=) [2, 3, 10, 12, 14, 16, 9, 8] ([],[2,3,10,12,14,16,9,8]) *Main> *Main> break (10==) [2, 3, 10, 12, 14, 16, 9, 8] ([2,3],[10,12,14,16,9,8]) *Main> *Main> break (10<=) [2, 3, 10, 12, 14, 16, 9, 8] ([2,3],[10,12,14,16,9,8]) *Main> *Main> break (10<) [2, 3, 10, 12, 14, 16, 9, 8] ([2,3,10],[12,14,16,9,8]) *Main> *Main> break ('w'==) "hello - world" ("hello - ","world")
Observe above examples;
break function takes function as its first argument and a list as second
argument. The function examines elements of the list and returns a Boolean
value to indicate whether to break the list at that point.
Example1
*Main Data.Char> break isUpper "hello Hari How are you" ("hello ","Hari How are you")
Above snippet break the
list into two sub lists, whenever it sees an upper case letter.
Example2
*Main Data.Char> break isLower "Humpty Dumpty sat on a wall" ("H","umpty Dumpty sat on a wall")
Above snippet break the
list into two sub lists, whenever it sees a lower case letter.
Example 3
*Main Data.Char> break odd [2, 4, 5, 3, 2, 4, 6] ([2,4],[5,3,2,4,6])
Above snippet break the
list into two sub lists, whenever it sees an odd number.
Example 4
*Main Data.Char> break even [1, 4, 5, 3, 2, 4, 6] ([1],[4,5,3,2,4,6])
Above snippet break the
list into two sub lists, whenever it sees an even number.
No comments:
Post a Comment