Difference between revisions of "Higher Order Functions Hall of Fame Assignment"
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
==MapHof== | ==MapHof== | ||
===map=== | ===map=== | ||
− | {{JavaToImplement|MapHof|map|hof.map. | + | {{JavaToImplement|MapHof|map|hof.map.util.exercise}} |
<nowiki>public static <T, R> ImmutableList<R> map(Function<T, R> f, ImmutableList<T> list)</nowiki> {{HofHof}} | <nowiki>public static <T, R> ImmutableList<R> map(Function<T, R> f, ImmutableList<T> list)</nowiki> {{HofHof}} | ||
Line 9: | Line 9: | ||
==MapHofApps== | ==MapHofApps== | ||
− | {{JavaToImplement|MapHofApps|mapToLengths<br>mapToStrictlyLessThan|hof.map. | + | {{JavaToImplement|MapHofApps|mapToLengths<br>mapToStrictlyLessThan|hof.map.client.exercise}} |
===mapToLengths=== | ===mapToLengths=== | ||
Line 21: | Line 21: | ||
==FilterHof== | ==FilterHof== | ||
===filter=== | ===filter=== | ||
− | {{JavaToImplement|FilterHof|filter|hof.filter. | + | {{JavaToImplement|FilterHof|filter|hof.filter.util.exercise}} |
<nowiki>public static <E> ImmutableList<E> filter(Predicate<E> predicate, ImmutableList<E> list)</nowiki> {{HofHof}} | <nowiki>public static <E> ImmutableList<E> filter(Predicate<E> predicate, ImmutableList<E> list)</nowiki> {{HofHof}} | ||
Line 28: | Line 28: | ||
==FilterHofApps== | ==FilterHofApps== | ||
− | {{JavaToImplement|FilterHofApps|filterWordsWhichContainAllVowels<br>filterEvens|hof.map. | + | {{JavaToImplement|FilterHofApps|filterWordsWhichContainAllVowels<br>filterEvens|hof.map.client.exercise}} |
<nowiki>public static ImmutableList<String> filterWordsWhichContainAllVowels(ImmutableList<String> words)</nowiki> | <nowiki>public static ImmutableList<String> filterWordsWhichContainAllVowels(ImmutableList<String> words)</nowiki> | ||
Line 42: | Line 42: | ||
Next, we will build some applications which use fold: sum (which does not require lexical scope) and countBetweenMinAndMaxExclusive (which does). | Next, we will build some applications which use fold: sum (which does not require lexical scope) and countBetweenMinAndMaxExclusive (which does). | ||
--> | --> | ||
− | {{JavaToImplement|FoldHof|foldLeft<br>foldRight|hof.fold. | + | {{JavaToImplement|FoldHof|foldLeft<br>foldRight|hof.fold.util.exercise}} |
===foldLeft=== | ===foldLeft=== | ||
Line 59: | Line 59: | ||
==Fold Apps== | ==Fold Apps== | ||
− | {{JavaToImplement|FoldHofApps|sum<br>countBetweenMinAndMaxExclusive|hof.map. | + | {{JavaToImplement|FoldHofApps|sum<br>countBetweenMinAndMaxExclusive|hof.map.client.exercise}} |
===sum=== | ===sum=== | ||
<nowiki>public static int sum(ImmutableList<Integer> xs)</nowiki> | <nowiki>public static int sum(ImmutableList<Integer> xs)</nowiki> | ||
Line 67: | Line 67: | ||
==FindHof== | ==FindHof== | ||
===find=== | ===find=== | ||
− | {{JavaToImplement|FindHof|find|hof.find. | + | {{JavaToImplement|FindHof|find|hof.find.util.exercise}} |
<nowiki>public static <E> Optional<E> find(Predicate<E> predicate, ImmutableList<E> list)</nowiki> {{HofHof}} | <nowiki>public static <E> Optional<E> find(Predicate<E> predicate, ImmutableList<E> list)</nowiki> {{HofHof}} | ||
Line 74: | Line 74: | ||
==FindHofApps== | ==FindHofApps== | ||
− | {{JavaToImplement|FindHofApps|findFirstPalindrome|hof.find. | + | {{JavaToImplement|FindHofApps|findFirstPalindrome|hof.find.client.exercise}} |
===findFirstPalindrome=== | ===findFirstPalindrome=== |
Revision as of 03:44, 15 February 2022
Contents
Code To Implement
MapHof
map
class: | MapHof.java | |
methods: | map | |
package: | hof.map.util.exercise | |
source folder: | src/main/java |
public static <T, R> ImmutableList<R> map(Function<T, R> f, ImmutableList<T> list)
MapHofApps
class: | MapHofApps.java | |
methods: | mapToLengths mapToStrictlyLessThan |
|
package: | hof.map.client.exercise | |
source folder: | src/main/java |
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)
FilterHof
filter
class: | FilterHof.java | |
methods: | filter | |
package: | hof.filter.util.exercise | |
source folder: | src/main/java |
public static <E> ImmutableList<E> filter(Predicate<E> predicate, ImmutableList<E> list)
FilterHofApps
class: | FilterHofApps.java | |
methods: | filterWordsWhichContainAllVowels filterEvens |
|
package: | hof.map.client.exercise | |
source folder: | src/main/java |
public static ImmutableList<String> filterWordsWhichContainAllVowels(ImmutableList<String> words)
public static ImmutableList<Integer> filterEvens(ImmutableList<Integer> xs)
FoldHof
class: | FoldHof.java | |
methods: | foldLeft foldRight |
|
package: | hof.fold.util.exercise | |
source folder: | src/main/java |
foldLeft
public static <A, B> A foldLeft(BiFunction<A, B, A> f, A acc, ImmutableList<B> list)
foldLeft(f, initial_value, [x1, x2, ..., xn])
- returns
f(xn,...,f(x2, f(x1, initial_value))...)
orinitial_value
if the list is empty.
foldRight
public static <A, B> A foldRight(BiFunction<A, B, A> f, A acc, ImmutableList<B> list)
foldRight(f, initial_value, [x1, x2, ..., xn])
- returns
f(x1, f(x2, ..., f(xn, init)...))
orinitial_value
if the list is empty.
Fold Apps
class: | FoldHofApps.java | |
methods: | sum countBetweenMinAndMaxExclusive |
|
package: | hof.map.client.exercise | |
source folder: | src/main/java |
sum
public static int sum(ImmutableList<Integer> xs)
countBetweenMinAndMaxExclusive
public static int countBetweenMinAndMaxExclusive(int min, int maxExclusive, ImmutableList<Integer> xs)
FindHof
find
class: | FindHof.java | |
methods: | find | |
package: | hof.find.util.exercise | |
source folder: | src/main/java |
public static <E> Optional<E> find(Predicate<E> predicate, ImmutableList<E> list)
FindHofApps
class: | FindHofApps.java | |
methods: | findFirstPalindrome | |
package: | hof.find.client.exercise | |
source folder: | src/main/java |
findFirstPalindrome
public static Optional<String> findFirstPalindrome(ImmutableList<String> words)
Test
class: | HigherOrderFunctionTestSuite.java | |
package: | hof.assignment | |
source folder: | src/test/java |
Map
class: | MapTestSuite.java | |
package: | hof.map.assignment | |
source folder: | src/test/java |
Filter
class: | FilterTestSuite.java | |
package: | hof.filter.assignment | |
source folder: | src/test/java |
Fold
class: | FoldTestSuite.java | |
package: | hof.fold.assignment | |
source folder: | src/test/java |
Filter
class: | FindTestSuite.java | |
package: | hof.find.assignment | |
source folder: | src/test/java |