原文链接:http://aperiodic.net/phil/scala/s-99/
没写完呢,等该系列文章写完后,会回来更新这个总纲的。。。
- P01 Find the last element of a list
- P02 Find the last but one element of a list
- P03 Find the Kth element of a list
- P04 Find the number of elements of a list
- P05 Reverse a list
- P06 Find out whether a list is a palindrome
- P07 Flatten a nested list structure
- P08 Eliminate consecutive duplicates of list elements
P01(*) Find the last element of a list
Example:
scala> last(List(1, 1, 2, 3, 5, 8))
res0: Int = 8
P02(*) Find the last but one element of a list
Example:
scala> penultimate(List(1, 1, 2, 3, 5, 8))
res0: Int = 5
P03(*) Find the Kth element of a list.
By convention, the first element in the list is element 0.
Example:
scala> nth(2, List(1, 1, 2, 3, 5, 8))
res0: Int = 2
P04 (*) Find the number of elements of a list.
Example:
scala> length(List(1, 1, 2, 3, 5, 8))
res0: Int = 6
P05 (*) Reverse a list.
Example:
scala> reverse(List(1, 1, 2, 3, 5, 8))
res0: List[Int] = List(8, 5, 3, 2, 1, 1)
P06 (*) Find out whether a list is a palindrome.
Example:
scala> isPalindrome(List(1, 2, 3, 2, 1))
res0: Boolean = true
P07 (**) Flatten a nested list structure.
Example:
scala> flatten(List(List(1, 1), 2, List(3, List(5, 8))))
res0: List[Any] = List(1, 1, 2, 3, 5, 8)
P08 (**) Eliminate consecutive duplicates of list elements.
If a list contains repeated elements they should be replaced with a single copy of the element. The order of the elements should not be changed.
Example:
scala> compress(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e))
res0: List[Symbol] = List('a, 'b, 'c, 'a, 'd, 'e)