Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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:

  1. Wiki Markup
    14.2.4  \[20 pts.\] Note: Be sure to compare list searching with tree searching, as the problem states.
  2. Wiki Markup
    16.3.3  \[20 pts.

    \]
    Notes:
    1. Test every function thoroughly (5+ examples).
    2. 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.
  3. Wiki Markup
    17.1.2 \[20 pts.\]
  4. 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.
  5. 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: 
    Code 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
    
    You are required to extend this definition to include applications (that is, expressions like
    Code Block
    (* (f (+ 15 x)) (g x))
    Be sure to include a function template with your solution.
  6. 18.1.5, parts 1, 4, & 5
  7. 18.1.15

...