Oct 7th, 2020 (edited)
1,044
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. // Karol Dziachan
2.
4.
5. def flatten[A] (xs:List[List[A]]) : List[A] =
6.   if(xs == Nil) throw new Exception("Empty list")
7.   else if (xs.length == 1) xs.head
8.    else xs.head ::: flatten(xs.tail)
9.
10.
11. flatten(List(List(1,2,3), List(4,5,6), List(7,8,9))) == List(1,2,3,4,5,6,7,8,9)
12. flatten(List(List(), List(1,2,3))) == List(1,2,3)
13. flatten(List(List(4,5,6), List())) == List(4,5,6)
14. flatten(List())
15.
16.
18.
19.
20.
21. def count [A] (x: A, xs: List[A]) : Int =
22.   if(xs == Nil) throw new Exception("empty list")
23.   else if(xs.tail == Nil)
24.     if(xs.head == x) 1
25.       else 0
26.   else if(xs.head == x) 1+count(x: A, xs.tail)
27.   else count(x: A, xs.tail)
28.
29. count ('a', List('a','l','a')) == 2
30. count ('a', List('a','l','a', 'a', 'a', 'm', 'a')) == 5
31. count ('a', List('l')) == 0
32. count ('a', List('a')) == 1
33. count(1, List(1,2,4,1,3,2,1)) == 3
34. count ('a', List())
35.
36.
37.
39.
40. def replicate [A] (x: A, n: Int): List[A] =
41.    if(n==1) List(x)
42.     else if(n==0) throw new Exception("Nothing")
43.    else List(x)::: replicate(x, n-1)
44.
45.
46.
47. replicate("la", 3) == List("la", "la", "la")
48. replicate("la", 1) == List("la")
49. replicate("", 3) == List("", "", "")
50. replicate("la", 0)
51. replicate("", 0)
52.
54.
55.
56. def sqrList (xs: List[Int]): List[Int] =
57.   if(xs == Nil ) throw new Exception("empty list")
58.   else if(xs.tail != Nil) ((List(xs.head*xs.head) ::: sqrList(xs.tail)))
60.   else   xs
61.
62. sqrList(List(1,2, 3, (-4)))
63. sqrList(List(1,2,3,4,5))
64. sqrList(List((-1), 2, 3, 4, (-5)))
65. sqrList(List())
66.
68.
69. def palindrome[A] (xs: List[A]): Boolean =
70.   if(xs==Nil) throw new Exception("Empty list")
71. else
72.   xs==xs.reverse
73.
74. palindrome(List("a", "l", "a"))
75. palindrome(List("A", "l", "a"))
76. palindrome(List("k", "a", "j", "a", "k"))
77. palindrome(List("k", "a", "r", "o", "l"))
78. palindrome(List())
79.
81.
82. def listLength[A](xs: List[A]): Int =
83.   if(xs == Nil) throw new Exception ("empty list")
84.   else if (xs.tail != Nil) 1+listLength(xs.tail)
85.   else 1
86.
87. listLength(List(1,2,3,4,5))
88. listLength(List("k", "a", "r", "o", "l"))
89. listLength(List("mother"))
90. listLength(List("mother", "father"))
91. listLength(List())
92.
93.
94.
RAW Paste Data

# Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!