functions' recursive construction
[
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:  20080707 (20:25) 
From:  Jeremy Yallop <jeremy.yallop@e...> 
Subject:  Re: [Camllist] functions' recursive construction 
Fabrice Marchant wrote: > On Wed, 23 May 2007 01:17:08 +0200 "Damien Lefortier" > <damien.lefortier@gmail.com> wrote: > >> I try to do a function f which takes one integer argument and >> returns a function g which returns its nth arguments. >> >> For example f 3 gives g with let g = fun x > fun y > fun z > z >> ;; >> >> I tried to do that kind of f function. >> >> let rec f = function 1 > fun x > x  n > fun _ > f (n1) ;; >> >> But it does not work, any idea ? > > Sometimes, trying to learn a bit more about OCaml, I dig into old > List topics. But here, outside Coq answer, I'm not sure to understand > the explanations about the original OCaml question. Please, is it > possible to write an OCaml function that would behave the way Damien > Lefortier wish ? (I think the answer is 'No') Could you shed light on > this ? Here's a rather simple way to do it by encoding all the mechanics in the integer argument rather than in "f". Like JeanChristophe Filliatre in the original thread, I'll use a zerobased rather than a onebased encoding. let z v = v let s n _ = n let f n = n Now f z 0 => 0 and f (s (s (s z))) 0 1 2 3 => 3 and so on. Jeremy.