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
Math.sqrt(x)
Java
Math.sqrt(x)
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 |
Math.sqrt(v)
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 |
Math.sqrt(v)
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.
SML Error Messages