X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=assignment7.mdwn;h=d6cb6813125279b02da88d34757d4d75b92415e6;hp=9f83b00924dca4212d23174d2116dae4f3c1d102;hb=76d2b904ae8af78f5d69fd1580f7f2a2cbfe6095;hpb=60fde0202775a36c5b20c370374649d2a90c6af8
diff --git a/assignment7.mdwn b/assignment7.mdwn
index 9f83b009..d6cb6813 100644
--- a/assignment7.mdwn
+++ b/assignment7.mdwn
@@ -1,19 +1,25 @@
-**The hints for problem 2 were being actively developed until early Saturday morning. They're pretty stable now. Remember you have a grace period until Sunday Nov. 28 to complete this homework.**
+**The hints for problem 2 were being actively developed until Saturday morning. They're stable now. Remember you have a grace period until Sunday Nov. 28 to complete this homework.**
-1. Make sure that your operation-counting monad from [[assignment6]] is working. Modify it so that instead of counting operations, it keeps track of the last remainder of any integer division. You can help yourself to the functions:
+1. Make sure that your operation-counting monad from [[assignment6]] is working. Modify it so that instead of counting operations, it keeps track of the last remainder of any integer division. You can help yourself to the functions:
let div x y = x / y;;
let remainder x y = x mod y;;
- Write a monadic operation that enables you to retrieve the last-saved remainder, at any arbitrary later point in the computation.
+ Write a monadic operation that enables you to retrieve the last-saved remainder, at any arbitrary later point in the computation. For example, you want to be able to calculate expressions like this:
-2. For the next assignment, read the paper [Coreference and Modality](/coreference-and-modality.pdf). Your task will be to re-express the semantics they offer in the terms we're now working with. You'll probably want to review the lecture notes from this week's meeting, which we haven't yet been able to post. We will do that soon. In the meantime, you can get started reading the paper.
+ (((some_long_computation / 12) + 5) - most_recent_remainder) * 2 - same_most_recent_remainder + 1
+
+ The remainder here is retrieved later than (and in addition to) the division it's the remainder of. It's also retrieved more than once. Suppose a given remainder remains retrievable until the next division is performed.
+
+
+
+2. For the next assignment, read the paper [Coreference and Modality](/coreference-and-modality.pdf). Your task will be to re-express the semantics they offer up to the middle of p. 16, in the terms we're now working with. You'll probably want to review [the lecture notes from this week's meeting](/week9).
Some advice:
* You don't need to re-express the epistemic modality part of their semantics, just their treatment of extensional predicate logic. Though extra credit if you want to do the whole thing.
- * You'll want to use the implementation of "implicitly represented" mutable variables that we discussed at the end of this week's meeting, or the "state monad" Chris presented, which is a simple version of the former.
+ * You'll want to use "implicitly represented" mutable variables, or a State monad.
* Here are some [hints](/hints/assignment_7_hint_1).