Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* Re: Map is not tail recursive
@ 1999-01-14  3:49 David McClain
  1999-01-14  9:49 ` The way Ocaml inlines Juan Jose Garcia Ripoll
  0 siblings, 1 reply; 2+ messages in thread
From: David McClain @ 1999-01-14  3:49 UTC (permalink / raw)
  To: caml-list, Jacques GARRIGUE

>(particularly if you inline it).

Is there a way to explicitly inline functions, other than cut and paste?

- DM

-----Original Message-----
From: Jacques GARRIGUE <garrigue@kurims.kyoto-u.ac.jp>
To: caml-list@pauillac.inria.fr <caml-list@pauillac.inria.fr>
Date: Wednesday, January 13, 1999 04:27
Subject: Re: Map is not tail recursive


>From: "David McClain" <dmcclain@azstarnet.com>
>
>> Juan got me thinking about this problem... So here is a solution:
>>
>> external rplacd : 'a list -> 'a list -> unit = "rplacd"
>>
>> -- and the external C code is
>>
>> value rplacd(value cell, value item)
>> {
>>   Store_field(cell,1,item);
>>   return Val_unit;
>> }
>
>While this is undocumented, there is a slightly simpler way to define
>rplacd, wihout using C. This should be faster in most cases
>(particularly if you inline it).
>
>let rplacd (cell : 'a list) (item : 'a) =
>  Obj.set_field (Obj.repr cell) 1 (Obj.repr item)
>
>As for using the null pointer to have more efficient representations
>in data-structures, this is theoretically possible (and I believe that
>Xavier Leroy had an implementation with it), but this is not in the
>current version of ocaml.
>
> Jacques
>
>---------------------------------------------------------------------------
>Jacques Garrigue      Kyoto University     garrigue at kurims.kyoto-u.ac.jp
> <A HREF=http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/>JG</A>
>




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1999-01-14 23:11 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-01-14  3:49 Map is not tail recursive David McClain
1999-01-14  9:49 ` The way Ocaml inlines Juan Jose Garcia Ripoll

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox