Difference between revisions of "Dynamic Spreadsheet Assignment"
Jump to navigation
Jump to search
Line 93: | Line 93: | ||
<code>function-spreadsheet</code>: | <code>function-spreadsheet</code>: | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
− | |(+ 1 2) | + | |<code>(+ 1 2)</code> |
− | |(+ 3 4) | + | |<code>(+ 3 4)</code> |
|- | |- | ||
− | |(/ 10 2) | + | |<code>(/ 10 2)</code> |
− | |(sqrt (/ 1 4)) | + | |<code>(sqrt (/ 1 4))</code> |
|- | |- | ||
− | |(sin (/ 3.14159 4)) | + | |<code>(sin (/ 3.14159 4))</code> |
− | |10 | + | |<code>10</code> |
|} | |} | ||
− | |||
<code>('''sum-row''' function-spreadsheet 0)</code> evaluates to <code>'''10'''</code> | <code>('''sum-row''' function-spreadsheet 0)</code> evaluates to <code>'''10'''</code> |
Latest revision as of 14:16, 30 March 2022
Contents
Motivation
Code To Use
general
void
number
string
list
Code To Implement
file: | src/main/racket/spreadsheet/spreadsheet.rkt | |
functions: | string->cell csv->spreadsheet row-count row-at sheet sum-row |
string->cell
(define (string->cell s) (error 'not-yet-implemented))
- if s is the empty string, evaluate to void
- if s represents a number, evaluate to that number
- if s starts with "(" and ends with ")", evaluate to a form suited for eval
- otherwise, evaluate to s
csv->spreadsheet
(define (csv->spreadsheet matrix) (error 'not-yet-implemented))
given a list of lists of strings, evaluate to a list of list of cells using #string->cell and a couple of list higher order functions.
row-count
(define (row-count sheet) (error 'not-yet-implemented))
hockey-spreadsheet
:
Name | Uniform Number | Birth Year | Games Played | Goals | Assists |
Bobby Orr | 4 | 1948 | 657 | 270 | 645 |
Wayne Gretzky | 99 | 1961 | 1487 | 894 | 1963 |
Mario Lemieux | 66 | 1965 | 915 | 690 | 1033 |
(row-count hockey-spreadsheet)
evaluates to 4
row-at
(define (row-at sheet row-index) (error 'not-yet-implemented))
(row-at hockey-spreadsheet 1)
evaluates to (list "Bobby Orr" 4 1948 657 270 645)
sum-row
(define (sum-row sheet row-index) (error 'not-yet-implemented))
(sum-row hockey-spreadsheet 1)
evaluates to 3524
function-spreadsheet
:
(+ 1 2)
|
(+ 3 4)
|
(/ 10 2)
|
(sqrt (/ 1 4))
|
(sin (/ 3.14159 4))
|
10
|
(sum-row function-spreadsheet 0)
evaluates to 10
(sum-row function-spreadsheet 1)
evaluates to 5 1/2
(sum-row function-spreadsheet 2)
evaluates to 10.707106312093558
Test
file: | spreadsheet_test.rkt | Test |
source folder: | src/test/racket/spreadsheet |
note: ensure that you have removed all printing to receive credit for any assignment.