[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Dmitry Lomov <dsl@i...> |
| Subject: | Re: [Caml-list] The need for opcode GRAB? |
On Friday 15 November 2002 12:15, A Joseph Koshy wrote: > Perhaps a basic question about the O'Caml bytecode interpreter: > > Why do we need to check at runtime if a function is being > partially applied? Isn't this information available to the > compiler? No it is not: implementation A.ml: let f x y = x + y let g x = if x = 1 then fun y -> y else fun y -> y - 1 interface A.mli: val f : int -> int -> int val g : int -> int -> int usage (somewhere outside A): let k = (A.f 1) (* this application is partial *) let r = (A.g 1) (* this application is not partial *) Compiler cannot distinguish between those two cases (knowing only A interface). BTW a GRAB/RESTART trick is very cool IMHO. My students always "Wow!" at it. Any references as to where it comes from (or was it a Xavier's own clever idea?) Cheers, Dmitry ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners