...
Submit your .ss
file via OWL-Space. You will need to use the "Intermediate Student" language to do Problem 18.1.15. If you want to use explicit lambda
notation (anywhere the right hand side of a define
statement), you will need to use the "Intermediate Student with lambda" language. You may use either intermediate level language for the entire assignment if you choose.
Required problems:
Wiki Markup 14.2.4 \[20 pts.\] Note: Be sure to compare list searching with tree searching, as the problem states.
Wiki Markup 16.3.3 \[20 pts.
\] Notes:
- Test every function thoroughly (5+ examples).
- Be sure to include definitions for both variations of
du-dir
. The final sentence should read "storing a file or a directory in a dir structure costs 1 storage unit." In other words, given a dir structure, each directory entry (a file or a directory) contained therein costs 1 unit of storage for the bookkeeping data. For a file, this is in addition to the size of its data.
Wiki Markup 17.1.2 \[20 pts.\]
Wiki Markup 17.6.1 \[30 pts.\] Do the problem as specified in the book.
*Extra Credit*: This problem can be solved more elegantly than the solution implied in the book. For the extra credit solution *ignore* the book's guidance on "writing functions that consume two complex inputs" in 17.5 and follow the guidance given in class on how to write a function that processes multiple inputs. Select *one* input as primary (the choice may be *arbitrary* in some cases). If you need to deconstruct a second argument, do it in a *auxiliary* function. Use only *one* design template in each function. Hint for solving this problem: only your auxiliary function, which has a contract and purpose statement almost identical to {{merge{}}}should be recursive (call itself) and it may need to deviate slightly from the structural recursion template.
Wiki Markup 17.7.1 \[10 pts.
\] Note: Make sure you understand section 14.4 before working on this problem. Use this data definition as a starting point:
You are required to extend this definition to include applications (that is, expressions likeCode Block ; expression ; An expression is one of: ; - a number ; - a symbol ; - (make-mul e1 e2) where e1 and e2 are expressions ; - (make-add e1 e2) where e1 and e2 are expressions
Be sure to include a function template with your solution.Code Block (* (f (+ 15 x)) (g x))
- 18.1.5, parts 1, 4, & 5
- 18.1.15
...