Higher Order Functions Hall of Fame Assignment

From CSE425S Wiki
Jump to navigation Jump to search

Code To Implement

Higher-order Functions

class: Hof.java Java.png
methods: filter
foldLeft
foldRight
map
find
package: hof.util.exercise
source folder: src/main/java

filter Laurel Wreath

SML List filter

public static <E> ImList<E> filter(Predicate<E> predicate, ImList<E> list)

foldLeft Laurel Wreath

SML List foldl

foldLeft(f, initial_value, [x1, x2, ..., xn])
returns f(xn,...,f(x2, f(x1, initial_value))...) or initial_value if the list is empty.
public static <E, R> R foldLeft(BiFunction<E, R, R> f, R acc, ImList<E> list)

foldRight Laurel Wreath

SML List foldr

foldRight(f, initial_value, [x1, x2, ..., xn])
returns f(x1, f(x2, ..., f(xn, init)...)) or initial_value if the list is empty.
public static <E, R> R foldRight(BiFunction<E, R, R> f, R acc, ImList<E> list)

map Laurel Wreath

SML List map

public static <E, R> ImList<R> map(Function<E, R> f, ImList<E> list)

find Laurel Wreath

SML List map

public static <E> Optional<E> find(Predicate<E> predicate, ImList<E> list)

Clients

class: HofClients.java Java.png
methods: toOnlyWordsWhichContainAllVowels
firstPalindrome
sum
countBetweenMinAndMaxExclusive
reverse
toLengths
toStrictlyLessThan
package: hof.clients.exercise
source folder: src/main/java

toOnlyWordsWhichContainAllVowels

public static ImList<String> toOnlyWordsWhichContainAllVowels(ImList<String> words)

toOnlyEvens

public static ImList<Integer> toOnlyEvens(ImList<Integer> xs)

toOnlyWordsWhichContainAllVowels

public static ImList<String> toOnlyWordsWhichContainAllVowels(ImList<String> words)

firstPalindrome

public static Optional<String> firstPalindrome(ImList<String> words)

sum

public static int sum(ImList<Integer> xs)

countBetweenMinAndMaxExclusive

public static int countBetweenMinAndMaxExclusive(int min, int maxExclusive, ImList<Integer> xs)

reverse

public static <E> ImList<E> reverse(ImList<E> xs)

toLengths

public static ImList<Integer> toLengths(ImList<String> texts)

toStrictlyLessThan

public static ImList<Boolean> toStrictlyLessThan(ImList<Integer> xs, int threshold)

Test

class: HigherOrderFunctionTestSuite.java Junit.png
package: hof
source folder: src/test/java