Imperative Features

Functional programming is awesome, or so we believe, and in the beginning we’re going to ask you to quit “cold turkey” on imperative programming. That means not using any of OCaml’s imperative features. Here is the short list of prohibited features:

If you do use any of those features, your submission will receive a substantial penalty. The amount will depend on the degree of your violation, but could be around 25% on the entire assignment. We happily will reduce the penalty to be quite small if you then submit a revised assignment that eliminates use of the prohibited features.

About halfway through the semester, we will flip the switch and allow all those features.

On the other hand, these features are always explicitly permitted:

If you have questions about whether any other features should be on either of these lists, please ask.