Code To Implement
Higher-order Functions
class: |
Hof.java |
|
methods: |
filter foldLeft foldRight map find
|
package: |
hof.util.exercise |
source folder: |
src/main/java |
filter
public static <E> ImList<E> filter(Predicate<E> predicate, ImList<E> list)
SML List filter
class: |
Hof.java |
|
methods: |
foldLeft foldRight |
package: |
hof.util.exercise |
source folder: |
src/main/java |
foldLeft
public static <E, R> R foldLeft(BiFunction<E, R, R> f, R acc, ImList<E> list)
foldLeft(f, initial_value, [x1, x2, ..., xn])
- returns
f(xn,...,f(x2, f(x1, initial_value))...)
or initial_value
if the list is empty.
SML List foldl
foldRight
public static <E, R> R foldRight(BiFunction<E, R, R> f, R acc, ImList<E> list)
foldRight(f, initial_value, [x1, x2, ..., xn])
- returns
f(x1, f(x2, ..., f(xn, init)...))
or initial_value
if the list is empty.
SML List foldr
map
class: |
Hof.java |
|
methods: |
map |
package: |
hof.util.exercise |
source folder: |
src/main/java |
public static <E, R> ImList<R> map(Function<E, R> f, ImList<E> list)
SML List map
find
class: |
Hof.java |
|
methods: |
find |
package: |
hof.util.exercise |
source folder: |
src/main/java |
public static <E> Optional<E> find(Predicate<E> predicate, ImList<E> list)
SML List map
Clients
class: |
HofClients.java |
|
methods: |
filterWordsWhichContainAllVowels filterEvens sum countBetweenMinAndMaxExclusive mapToLengths mapToStrictlyLessThan findFirstPalindrome |
package: |
hof.clients.exercise |
source folder: |
src/main/java |
public static ImmutableList<String> filterWordsWhichContainAllVowels(ImmutableList<String> words)
public static ImmutableList<Integer> filterEvens(ImmutableList<Integer> xs)
sum
public static int sum(ImmutableList<Integer> xs)
countBetweenMinAndMaxExclusive
public static int countBetweenMinAndMaxExclusive(int min, int maxExclusive, ImmutableList<Integer> xs)
mapToLengths
public static ImmutableList<Integer> mapToLengths(ImmutableList<String> texts)
Use the String class's length() method.
mapToStrictlyLessThan
public static ImmutableList<Boolean> mapToStrictlyLessThan(ImmutableList<Integer> xs, int threshold)
findFirstPalindrome
public static Optional<String> findFirstPalindrome(ImmutableList<String> words)
Test
class: |
HigherOrderFunctionTestSuite.java |
|
package: |
hof |
source folder: |
src/test/java |
Map
class: |
MapTestSuite.java |
|
package: |
hof.map |
source folder: |
src/test/java |
Filter
class: |
FilterTestSuite.java |
|
package: |
hof.filter |
source folder: |
src/test/java |
Fold
class: |
FoldTestSuite.java |
|
package: |
hof.fold |
source folder: |
src/test/java |
Filter
class: |
FindTestSuite.java |
|
package: |
hof.find |
source folder: |
src/test/java |