Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following imperative method takes a list of integers and returns a list cons

ID: 3579484 • Letter: T

Question

The following imperative method takes a list of integers and returns a list consisting of

all the even integers in the original list (in the original order).

def getEvens(input: List[Int]): List[Int] = {

var currentList = input

var resultList: List[Int] = List()

while (currentList.length != 0) {

if (currentList(0) % 2 == 0) {

resultList = currentList(0) :: resultList

}

currentList = currentList.tail

}

resultList.reverse

}

a) Rewrite this method in a purely functional style using list pattern matching and

recursion.

b) Rewrite it a second time in a purely functional style using the filter higher order

method.

Explanation / Answer

a)

Program

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

public class Evennumber {

static int i=0;

   public static ArrayList<Integer> findEvens(ArrayList a) {

   ArrayList<Integer> newlist = new ArrayList<Integer>();

     for (Iterator<Integer> iterator = a.iterator(); iterator.hasNext();) {

      

    Integer number = iterator.next();

    if (number % 2 != 0) {

         a.remove(i);

       return findEvens(a);

       

    }

}

    return a;

}

    public static void main(String[] args) {

       ArrayList<Integer> original = new ArrayList<Integer>();

        ArrayList<Integer> evenlist = new ArrayList<Integer>();

      original.add(1);

       original.add(3);

       original.add(7);

       original.add(8);

       original.add(4);

       original.add(2);

       System.out.println(original);

     

       evenlist=findEvens(original);

     

       System.out.println("Even list using Recursive Method :"+evenlist);

        

    }

  

}

b)

Program

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

public class Evennumber {

public static ArrayList<Integer> sorting(ArrayList a1){

  

    Collections.sort(a1);

    Collections.reverse(a1);

    return a1;

}

    public static void main(String[] args) {

       ArrayList<Integer> original = new ArrayList<Integer>();

       ArrayList<Integer> sortlist = new ArrayList<Integer>();

       original.add(1);

       original.add(3);

       original.add(7);

       original.add(8);

       original.add(4);

       original.add(2);

       System.out.println(original);

     

       sortlist=sorting(original);

     

       System.out.println("Sorted List :"+sortlist);

     

    }

  

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Chat Now And Get Quote