Difference between revisions of "Sum Scan Assignment"
Jump to navigation
Jump to search
(Created page with "=Background= [https://en.wikipedia.org/wiki/Prefix_sum Prefix sum on Wikipedia] =Code to Implement= {{SMLToImplement|sum_scan|sum_scan|warmup_sum_scan}} ==sum_scan== Write...") |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
=Code to Implement= | =Code to Implement= | ||
− | {{SMLToImplement| | + | {{SMLToImplement|sum_scan_fun|sum_scan|warmup_sum_scan_fun}} |
==sum_scan== | ==sum_scan== | ||
Line 11: | Line 11: | ||
fun sum_scan(xs : int list) : int list | fun sum_scan(xs : int list) : int list | ||
− | which produces a list whose values are | + | which produces a list whose values are the [https://en.wikipedia.org/wiki/Running_total running totals] of the values in <code>xs</code>. |
===Example [1,2,3,4,5,6,7,8]=== | ===Example [1,2,3,4,5,6,7,8]=== | ||
Line 22: | Line 22: | ||
[1,3,6,10,15,21,28,36] | [1,3,6,10,15,21,28,36] | ||
− | :{| class="wikitable" | + | :{| class="wikitable" style="text-align:right;" |
|- | |- | ||
− | !xs | + | ! style="text-align:right;" | xs |
| 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 | | 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 | ||
|- | |- | ||
− | !sum_scan(xs) | + | ! style="text-align:right;" | sum_scan(xs) |
| 1 || 3 || 6 || 10 || 15 || 21 || 28 || 36 | | 1 || 3 || 6 || 10 || 15 || 21 || 28 || 36 | ||
|} | |} | ||
Line 40: | Line 40: | ||
[131, 362, 787] | [131, 362, 787] | ||
− | :{| class="wikitable" | + | :{| class="wikitable" style="text-align:right;" |
|- | |- | ||
− | !xs | + | ! style="text-align:right;" | xs |
| 131 || 231 || 425 | | 131 || 231 || 425 | ||
|- | |- | ||
− | !sum_scan(xs) | + | ! style="text-align:right;" | sum_scan(xs) |
| 131 || 362 || 787 | | 131 || 362 || 787 | ||
|} | |} | ||
− | |||
=Test= | =Test= | ||
− | {{ | + | {{SMLUnitTesting|run_sum_scan_fun_testing|warmup_sum_scan_fun}} |
Latest revision as of 21:06, 7 September 2022
Contents
Background
Code to Implement
file: | src/main/sml/warmup_sum_scan_fun/sum_scan_fun.sml | ![]() |
functions: | sum_scan |
sum_scan
Write a function
fun sum_scan(xs : int list) : int list
which produces a list whose values are the running totals of the values in xs
.
Example [1,2,3,4,5,6,7,8]
For example:
sum_scan([1,2,3,4,5,6,7,8])
would produce:
[1,3,6,10,15,21,28,36]
xs 1 2 3 4 5 6 7 8 sum_scan(xs) 1 3 6 10 15 21 28 36
Example [131,231,425]
For example:
sum_scan([131,231,425])
would produce:
[131, 362, 787]
xs 131 231 425 sum_scan(xs) 131 362 787
Test
source folder: | src/test/sml/warmup_sum_scan_fun |
how to run with CM.make verbosity off: | sml -Ccm.verbose=false run_sum_scan_fun_testing.sml |
how to run with CM.make verbosity on: | sml run_sum_scan_fun_testing.sml |
note: ensure that you have removed all printing to receive credit for any assignment.