X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=hints%2Fassignment_7_hint_3.mdwn;h=0914b79d3c2bd6e2361aa80e45b0850027889b16;hp=46e9639986608ed9cd98032b6f1460243e2acad4;hb=26574827b88c32f00baaf941c4eac1aaebac839d;hpb=0909de0f7239a703c4f8f4b77e5eee17be883767 diff --git a/hints/assignment_7_hint_3.mdwn b/hints/assignment_7_hint_3.mdwn index 46e96399..0914b79d 100644 --- a/hints/assignment_7_hint_3.mdwn +++ b/hints/assignment_7_hint_3.mdwn @@ -27,8 +27,6 @@ we'll just talk about \[[expression]] and let that be a monadic value, implemented in part by a function that takes `(r, h)` as an argument. - More specifically, \[[expression]] will be a set of `'a dpm`s, where `'a` is the appropriate type for *expression*. Each `'a dpm` is implemented by a function that takes `(r, h)` as an argument. - * In def 2.7, GS&V talk about an operation that takes an existing set of discourse possibilities, and *extends* each member in the set by (i) allocating a new location in the store, (ii) putting some entity `d` from the domain in that location, and (iii) assigning variable `x` to that location in the store. It will be useful to have a shorthand way of referring to this operation: @@ -42,7 +40,8 @@ It will be useful to have a shorthand way of referring to this operation: (* next we assign 'x' to location newindex *) in let r' = fun v -> if v = var_to_bind then newindex else r v - in (r',h') + (* the reason for returning true as an initial element will emerge later *) + in (true, r',h') * Is that enough? If not, here are some [more hints](/hints/assignment_7_hint_4).