└── scala ├── NumberClassifier.class ├── NumberClassifier.tasty ├── StringFormatter$.class ├── StringFormatter.class ├── StringFormatter.tasty ├── InterestCalculator.class ├── InterestCalculator.tasty ├── NumberClassifier$.class ├── InterestCalculator$.class ├── NumberClassifier.scala ├── InterestCalculator.scala └── StringFormatter.scala /scala/NumberClassifier.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/NumberClassifier.class -------------------------------------------------------------------------------- /scala/NumberClassifier.tasty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/NumberClassifier.tasty -------------------------------------------------------------------------------- /scala/StringFormatter$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/StringFormatter$.class -------------------------------------------------------------------------------- /scala/StringFormatter.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/StringFormatter.class -------------------------------------------------------------------------------- /scala/StringFormatter.tasty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/StringFormatter.tasty -------------------------------------------------------------------------------- /scala/InterestCalculator.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/InterestCalculator.class -------------------------------------------------------------------------------- /scala/InterestCalculator.tasty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/InterestCalculator.tasty -------------------------------------------------------------------------------- /scala/NumberClassifier$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/NumberClassifier$.class -------------------------------------------------------------------------------- /scala/InterestCalculator$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hirun-HM/Functional-Programming/HEAD/scala/InterestCalculator$.class -------------------------------------------------------------------------------- /scala/NumberClassifier.scala: -------------------------------------------------------------------------------- 1 | object NumberClassifier { 2 | def main(args: Array[String]): Unit = { 3 | def classifyNumber(num: Int): String = num match { 4 | case n if n <= 0 => "Negative/Zero is input" 5 | case n if n % 2 == 0 => "Even number is given" 6 | case _ => "Odd number is given" 7 | } 8 | 9 | 10 | println(classifyNumber(-5)) 11 | println(classifyNumber(0)) 12 | println(classifyNumber(4)) 13 | println(classifyNumber(7)) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /scala/InterestCalculator.scala: -------------------------------------------------------------------------------- 1 | object InterestCalculator { 2 | def main(args: Array[String]): Unit = { 3 | val calculateInterest: Double => Double = deposit => deposit match { 4 | case d if d <= 20000 => d * 0.02 5 | case d if d <= 200000 => d * 0.04 6 | case d if d <= 2000000 => d * 0.035 7 | case d if d > 2000000 => d * 0.065 8 | } 9 | 10 | println(calculateInterest(15000)) // Output: 300.0 11 | println(calculateInterest(150000)) // Output: 6000.0 12 | println(calculateInterest(1500000)) // Output: 52500.0 13 | println(calculateInterest(2500000)) // Output: 162500.0 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /scala/StringFormatter.scala: -------------------------------------------------------------------------------- 1 | object StringFormatter { 2 | def main(args: Array[String]): Unit = { 3 | def toUpper(str: String): String = str.toUpperCase 4 | def toLower(str: String): String = str.toLowerCase 5 | 6 | def formatNames(name: String)(formatFunc: String => String): String = formatFunc(name) 7 | 8 | 9 | println(formatNames("Benny")(toUpper)) // Output: BENNY 10 | println(formatNames("Niroshan")(str => str.substring(0, 2).toUpperCase + str.substring(2))) // Output: NIroshan 11 | println(formatNames("Saman")(toLower)) // Output: saman 12 | println(formatNames("Kumara")(str => str.substring(0, 1).toUpperCase + str.substring(1, str.length-1).toLowerCase + str.substring(str.length-1).toUpperCase)) // Output: KumarA 13 | } 14 | } 15 | --------------------------------------------------------------------------------