6 Assignments

All work will be due at 11:59pm of the indicated day.

The abbreviation ML stands “mystery language”, not the ML family of programming languages. See the Anticipated Frequent Questions to learn more about these assignments and how you’re expected to respond to them.

Note: all submissions must be done using your Brown Google account. Please do not contact us to “request access”. Use a browser that knows your Brown identity to submit.

Title

  

Published

  

Due

ML: Numbers

  

Wed, Sep 06

  

Thu, Sep 07

ML: Conditionals

  

Fri, Sep 08

  

Sun, Sep 10

ML: Named Functions

  

Mon, Sep 11

  

Thu, Sep 14

ML: Scope

  

Fri, Sep 15

  

Tue, Sep 19

ML: Function Calls

  

Wed, Sep 20

  

Thu, Sep 21

ML: Anonymous Functions

  

Fri, Sep 22

  

Sun, Sep 24

ML: Loops

  

Mon, Sep 25

  

Tue, Sep 26

Interpreter: Base

  

Wed, Sep 27

  

Tue, Oct 03

Calc Locals Vars

  

Wed, Oct 04

  

Tue, Oct 10

ML: Fields

  

Wed, Oct 11

  

Sun, Oct 15

Type Checker

  

Mon, Oct 16

  

Thu, Oct 19

Calc Local Fields

  

Fri, Oct 20

  

Tue, Oct 24

ML: Mutable Variables

  

Wed, Oct 25

  

Sun, Oct 29

ML: Mutable Structures

  

Mon, Oct 30

  

Tue, Oct 31

Interpreter: State

  

Wed, Nov 01

  

Tue, Nov 07

Calc Local Vars: With

  

Wed, Nov 08

  

Sun, Nov 12

ML: Evaluation Order

  

Mon, Nov 13

  

Tue, Nov 14

Interpreter: Lazy

  

Wed, Nov 15

  

Sun, Nov 19

Macros

  

Mon, Nov 20

  

Thu, Nov 30

Shell

  

Fri, Dec 01

  

Thu, Dec 07

If you’re new to Pyret, you should consider doing the Learning Pyret exercise, which will help you gain practice with the language. Though this assignment is not required, if you haven’t programmed in Pyret before, we strongly encourage you to complete it. You will use Pyret in the non-ML assignments. This gives you some time to learn the language, but don’t put this off to the last minute.

You may also find these two labs useful:

If you know Racket, you may find this guide helpful.