* [Caml-list] Tuples (covariant immutable arrays) @ 2012-03-14 20:38 Lukasz Stafiniak 2012-03-14 21:03 ` Edgar Friendly 0 siblings, 1 reply; 5+ messages in thread From: Lukasz Stafiniak @ 2012-03-14 20:38 UTC (permalink / raw) To: Caml Hi, Does anyone have a Tuple module that exports arrays as immutable and covariant? Thanks, Łukasz ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Tuples (covariant immutable arrays) 2012-03-14 20:38 [Caml-list] Tuples (covariant immutable arrays) Lukasz Stafiniak @ 2012-03-14 21:03 ` Edgar Friendly 2012-03-14 21:12 ` Lukasz Stafiniak 0 siblings, 1 reply; 5+ messages in thread From: Edgar Friendly @ 2012-03-14 21:03 UTC (permalink / raw) To: Lukasz Stafiniak; +Cc: Caml [-- Attachment #1: Type: text/plain, Size: 662 bytes --] Batteries has a Cap submodule that provides type-level protection for arrays so they can be Read-only/Write-only/Read-write. The same idea with a variance annotation and just read-only access seems to be what you're looking for, no? 2012/3/14 Lukasz Stafiniak <lukstafi@gmail.com> > Hi, > > Does anyone have a Tuple module that exports arrays as immutable and > covariant? > > Thanks, > Łukasz > > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa-roc.inria.fr/wws/info/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > > [-- Attachment #2: Type: text/html, Size: 1199 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Tuples (covariant immutable arrays) 2012-03-14 21:03 ` Edgar Friendly @ 2012-03-14 21:12 ` Lukasz Stafiniak 2012-03-14 21:26 ` Edgar Friendly 0 siblings, 1 reply; 5+ messages in thread From: Lukasz Stafiniak @ 2012-03-14 21:12 UTC (permalink / raw) To: Edgar Friendly; +Cc: Caml On Wed, Mar 14, 2012 at 10:03 PM, Edgar Friendly <thelema314@gmail.com> wrote: > Batteries has a Cap submodule that provides type-level protection for arrays > so they can be Read-only/Write-only/Read-write. The same idea with a > variance annotation and just read-only access seems to be what you're > looking for, no? It seems no, because Cap is invariant, and for a reason: for example, Hashtbl.Cap.of_table says "This operation involves no copying. In other words, in let cap = of_table a in ..., any modification in a will also have effect on cap and reciprocally." What I'm thinking about is type +'a Tuple.t with Tuple.of_list and Tuple.of_array both performing a copy. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Tuples (covariant immutable arrays) 2012-03-14 21:12 ` Lukasz Stafiniak @ 2012-03-14 21:26 ` Edgar Friendly 2012-03-14 22:18 ` Alexandre Pilkiewicz 0 siblings, 1 reply; 5+ messages in thread From: Edgar Friendly @ 2012-03-14 21:26 UTC (permalink / raw) To: Lukasz Stafiniak; +Cc: Caml [-- Attachment #1: Type: text/plain, Size: 1245 bytes --] Ok, trivial enough a change. You'll have to make a case for the usefulness of this data structure being in batteries for us to make the change, otherwise, feel free to use the batteries code as a basis for your Tuple data structure. LGPL2.1+linking exception should be sufficiently liberal for most uses. E. btw, link to the docs I meant to include in my first email: http://ocaml-batteries-team.github.com/batteries-included/hdoc/BatArray.Cap.html On Wed, Mar 14, 2012 at 5:12 PM, Lukasz Stafiniak <lukstafi@gmail.com>wrote: > On Wed, Mar 14, 2012 at 10:03 PM, Edgar Friendly <thelema314@gmail.com> > wrote: > > Batteries has a Cap submodule that provides type-level protection for > arrays > > so they can be Read-only/Write-only/Read-write. The same idea with a > > variance annotation and just read-only access seems to be what you're > > looking for, no? > > It seems no, because Cap is invariant, and for a reason: for example, > Hashtbl.Cap.of_table says > "This operation involves no copying. In other words, in let cap = > of_table a in ..., any modification in a will also have effect on cap > and reciprocally." > > What I'm thinking about is type +'a Tuple.t with Tuple.of_list and > Tuple.of_array both performing a copy. > [-- Attachment #2: Type: text/html, Size: 1738 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Caml-list] Tuples (covariant immutable arrays) 2012-03-14 21:26 ` Edgar Friendly @ 2012-03-14 22:18 ` Alexandre Pilkiewicz 0 siblings, 0 replies; 5+ messages in thread From: Alexandre Pilkiewicz @ 2012-03-14 22:18 UTC (permalink / raw) To: Edgar Friendly; +Cc: Lukasz Stafiniak, Caml type +'a t = (int -> 'a) * int let get (a: 'a t) i = (fst a) i let length (a: 'a t) = snd a let of_array (a: 'a array) : 'a t = let a' = Array.copy a in (Array.get a', Array.length a') should be enough ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-03-14 22:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-03-14 20:38 [Caml-list] Tuples (covariant immutable arrays) Lukasz Stafiniak 2012-03-14 21:03 ` Edgar Friendly 2012-03-14 21:12 ` Lukasz Stafiniak 2012-03-14 21:26 ` Edgar Friendly 2012-03-14 22:18 ` Alexandre Pilkiewicz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox