X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=assignment7.mdwn;h=d6cb6813125279b02da88d34757d4d75b92415e6;hp=68ce97a1ecc36289743682dbc064e662e6a3ff48;hb=8f043cd83b65c90928ab884d52be168b93d23a6c;hpb=75ddc6ddfcccde0ef5625efc29084c60ba89645e
diff --git a/assignment7.mdwn b/assignment7.mdwn
index 68ce97a1..d6cb6813 100644
--- a/assignment7.mdwn
+++ b/assignment7.mdwn
@@ -1,19 +1,25 @@
+**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 any of 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 mod x y = x mod y;;
- let divmod x y = (div x y, mod x y);;
+ let remainder x y = x mod y;;
- you like. 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 the treatment of indefinites. Though extra credit if you do the whole thing.
+ * 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. Conceptually, though, it's sometimes useful to switch back and forth between the "implicitly represented" model and the "explicitly represented" model.
+ * You'll want to use "implicitly represented" mutable variables, or a State monad.
* Here are some [hints](/hints/assignment_7_hint_1).