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:
- (((some_long_computation / 12) + 5) - most_recent_remainder) * 2 - same_most_recent_remainder +1
+ (((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.
+ 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.
* 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).