Difference between revisions of "Sum Distances To Origin With Pattern Matching Compared To Java Assignment"
Jump to navigation
Jump to search
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = | + | =Motivation= |
+ | Compare implementations in Java and SML to highlight the crispness of type inference and pattern matching. | ||
− | + | =Previous Warmup= | |
− | = | + | This warmup is a variation of the [[Sum_Distances_To_Origin_With_Functions_Assignment|Sum Distances To Origin with Functions]] warmup. |
− | |||
− | |||
=Background= | =Background= | ||
− | [https:// | + | ==SML== |
+ | [https://smlfamily.github.io/Basis/math.html#SIG:MATH.sqrt:VAL Math.sqrt(x)] | ||
− | [https:// | + | ==Java== |
+ | [https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#sqrt-double- Math.sqrt(x)] | ||
=Code To Implement= | =Code To Implement= | ||
==Java== | ==Java== | ||
+ | |||
+ | Note: you will need to complete the [[ImmutableList_Assignment|ImList<E>]] exercise before testing the Java portion of this assignment. | ||
+ | |||
{{JavaToImplement|SumDistancesToOrigin|sumDistancesToOrigin|distance.warmup}} | {{JavaToImplement|SumDistancesToOrigin|sumDistancesToOrigin|distance.warmup}} | ||
Line 20: | Line 24: | ||
==SML== | ==SML== | ||
− | {{SMLToImplement|sum_distances_to_origin|sum_distances_to_origin| | + | {{SMLToImplement|sum_distances_to_origin|sum_distances_to_origin|warmup_sum_distances_to_origin_pattern}} |
[https://smlfamily.github.io/Basis/math.html#SIG:MATH.sqrt:VAL Math.sqrt(v)] | [https://smlfamily.github.io/Basis/math.html#SIG:MATH.sqrt:VAL Math.sqrt(v)] | ||
− | fun sum_distances_to_origin(xys) | + | fun sum_distances_to_origin(xys : (real * real) list) |
=Test= | =Test= | ||
Line 31: | Line 35: | ||
==SML== | ==SML== | ||
− | {{ | + | {{SMLUnitTesting|run_sum_distances_to_origin_pattern_testing|warmup_sum_distances_to_origin_pattern}} |
Latest revision as of 14:33, 12 September 2022
Contents
Motivation
Compare implementations in Java and SML to highlight the crispness of type inference and pattern matching.
Previous Warmup
This warmup is a variation of the Sum Distances To Origin with Functions warmup.
Background
SML
Java
Code To Implement
Java
Note: you will need to complete the ImList<E> exercise before testing the Java portion of this assignment.
class: | SumDistancesToOrigin.java | ![]() |
methods: | sumDistancesToOrigin | |
package: | distance.warmup | |
source folder: | src/main/java |
public static double sumDistancesToOrigin(ImList<ImTuple2<Double, Double>> xys)
SML
file: | src/main/sml/warmup_sum_distances_to_origin_pattern/sum_distances_to_origin.sml | ![]() |
functions: | sum_distances_to_origin |
fun sum_distances_to_origin(xys : (real * real) list)
Test
Java
class: | SumDistancesToOriginTestSuite.java | ![]() |
package: | distance.warmup | |
source folder: | src/test/java |
SML
source folder: | src/test/sml/warmup_sum_distances_to_origin_pattern |
how to run with CM.make verbosity off: | sml -Ccm.verbose=false run_sum_distances_to_origin_pattern_testing.sml |
how to run with CM.make verbosity on: | sml run_sum_distances_to_origin_pattern_testing.sml |
note: ensure that you have removed all printing to receive credit for any assignment.