projects
/
lambda.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
339a544
)
changes
author
Chris Barker
<barker@kappa.linguistics.fas.nyu.edu>
Fri, 10 Jun 2011 19:15:39 +0000
(15:15 -0400)
committer
Chris Barker
<barker@kappa.linguistics.fas.nyu.edu>
Fri, 10 Jun 2011 19:15:39 +0000
(15:15 -0400)
cps.mdwn
patch
|
blob
|
history
diff --git
a/cps.mdwn
b/cps.mdwn
index
6668b48
..
9617dad
100644
(file)
--- a/
cps.mdwn
+++ b/
cps.mdwn
@@
-180,8
+180,8
@@
Questions and exercises:
1. Prove that {(\x.y)(ww)} does not terminate.
1. Prove that {(\x.y)(ww)} does not terminate.
-2. Why is the CBN xform for variables `[x] = x
'
instead of something
-involving kappas?
+2. Why is the CBN xform for variables `[x] = x
`
instead of something
+involving kappas
(i.e., `k`'s)
?
3. Write an Ocaml function that takes a lambda term and returns a
CPS-xformed lambda term. You can use the following data declaration:
3. Write an Ocaml function that takes a lambda term and returns a
CPS-xformed lambda term. You can use the following data declaration:
@@
-196,6
+196,10
@@
CBV) more completely and carefully.
5. What happens (in terms of evaluation order) when the application
rule for CBV CPS is changed to `{MN} = \k.{N}(\n.{M}(\m.mnk))`?
5. What happens (in terms of evaluation order) when the application
rule for CBV CPS is changed to `{MN} = \k.{N}(\n.{M}(\m.mnk))`?
+6. A term and its CPS xform are different lambda terms. Yet in some
+sense they "do" the same thing computationally. Make this sense
+precise.
+
Thinking through the types
--------------------------
Thinking through the types
--------------------------