<LiesHidden>
I'm not quite sure what you're trying to accomplish, but you can use a statement like "let a = if l - 4 then 2 else 1" to use too possibilities depending on another variable.
<LiesHidden>
if l = 4 *
<LiesHidden>
and two* sheesh, lol, typed too quickly apparently
q66 has quit [Remote host closed the connection]
emmanuelux has quit [Quit: emmanuelux]
<LiesHidden>
Hmm, I should really get into the habit of calling "variables" expressions, since they're not like variables in other languages.
osnr1 has joined #ocaml
osnr has quit [Read error: Connection reset by peer]
talzeus has joined #ocaml
<tobiasBora>
LiesHidden: Thanks, but it's not exactly what I'm looking for. In fact in a condition, I need to compute a result which is quite long to compute and use it in every condition after. Of course I can put an else instead of elseif, do my compute just after, and imbricate a second condition group just after, but if I could find a speeder way it would be nice...
<tobiasBora>
In C, I think it's possible to do it with (i=0 == 0) for exemple
<tobiasBora>
(it's very useful in loop I believe)
ollehar has quit [Ping timeout: 256 seconds]
zpe has joined #ocaml
<LiesHidden>
blah 20 is_prime functions is expensive, especially when 15 of them are 8 digit numbers :/
<LiesHidden>
oh and they're only using 1 thread of 1 core.... maybe I should spawn workers for this....
tobiasBora has quit [Quit: Konversation terminated!]
Watcher7|off is now known as Watcher7
zpe has quit [Ping timeout: 276 seconds]
darkf has joined #ocaml
osnr1 has quit [Ping timeout: 245 seconds]
ygrek has joined #ocaml
ollehar has joined #ocaml
zpe has joined #ocaml
Watcher7 is now known as Watcher7|off
ygrek has quit [Ping timeout: 256 seconds]
mfp has quit [Ping timeout: 248 seconds]
zpe has quit [Ping timeout: 264 seconds]
ollehar has quit [Ping timeout: 256 seconds]
mfp has joined #ocaml
zpe has joined #ocaml
ygrek has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 276 seconds]
walter|r has joined #ocaml
yacks has joined #ocaml
zpe has joined #ocaml
yacks has quit [Quit: Leaving]
zpe has quit [Ping timeout: 264 seconds]
zpe has joined #ocaml
zpe has quit [Ping timeout: 264 seconds]
Zeev has quit [Ping timeout: 245 seconds]
Snark has joined #ocaml
zpe has joined #ocaml
Zeev has joined #ocaml
zpe has quit [Ping timeout: 241 seconds]
ygrek has quit [Ping timeout: 276 seconds]
Neros has quit [Ping timeout: 245 seconds]
talzeus has quit [Remote host closed the connection]
talzeus has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 256 seconds]
talzeus has quit [Remote host closed the connection]
talzeus has joined #ocaml
Nahra has quit [Quit: leaving]
Nahra has joined #ocaml
Nahra has quit [Changing host]
Nahra has joined #ocaml
zpe has joined #ocaml
Yoric has joined #ocaml
ygrek has joined #ocaml
yacks has joined #ocaml
zpe has quit [Ping timeout: 240 seconds]
adrien_oww has quit [Ping timeout: 245 seconds]
ttamttam has joined #ocaml
adrien_oww has joined #ocaml
<adrien_oww>
morning
<t4nk703>
morning
ttamttam has left #ocaml []
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
eikke has joined #ocaml
ontologiae_ has joined #ocaml
zpe has joined #ocaml
mika1 has joined #ocaml
cago has joined #ocaml
thomasga has joined #ocaml
thomasga1 has joined #ocaml
thomasga has quit [Read error: Connection reset by peer]
raichoo has joined #ocaml
ttamttam has joined #ocaml
eikke has quit [Ping timeout: 264 seconds]
ttm is now known as The_third_man
zpe has quit [Remote host closed the connection]
hkBst has quit [Ping timeout: 246 seconds]
hkBst_ has joined #ocaml
raichoo has quit [Quit: leaving]
hkBst__ has joined #ocaml
hkBst_ has quit [Ping timeout: 256 seconds]
raichoo has joined #ocaml
Yoric has quit [Ping timeout: 246 seconds]
ggherdov has quit [Changing host]
ggherdov has joined #ocaml
ggherdov has quit [Changing host]
ggherdov has joined #ocaml
Kakadu has joined #ocaml
zpe has joined #ocaml
hkBst__ has quit [Read error: Connection reset by peer]
talzeus has quit [Read error: Connection reset by peer]
talzeus has joined #ocaml
t4nk703 has quit [Ping timeout: 250 seconds]
hkBst__ has joined #ocaml
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
hkBst__ has quit [Ping timeout: 256 seconds]
jbrown has joined #ocaml
ollehar has joined #ocaml
talzeus has quit [Read error: Connection reset by peer]
talzeus_ has joined #ocaml
ttamttam has left #ocaml []
yacks has quit [Quit: Leaving]
Neros has joined #ocaml
q66 has joined #ocaml
Yoric has joined #ocaml
Drup has joined #ocaml
thomasga1 is now known as thomasga
Drup has quit [Ping timeout: 240 seconds]
_andre has joined #ocaml
rzm has quit [Quit: leaving]
ontologiae_ has quit [Ping timeout: 256 seconds]
ollehar has quit [Ping timeout: 252 seconds]
Drup has joined #ocaml
mk270 has joined #ocaml
<mk270>
hello - i'm having some trouble getting pgocaml to work with obuild
<mk270>
Camlp4: Uncaught exception: DynLoader.Error ("/home/mk270/.opam/4.00.1/lib/pgocaml/pa_pgsql.cma", "error while linking /home/mk270/.opam/4.00.1/lib/pgocaml/pa_pgsql.cma.\nReference to undefined global `Batteries'")
<mk270>
Camlp4: Uncaught exception: DynLoader.Error ("/home/mk270/.opam/4.00.1/lib/pgocaml/pa_pgsql.cma", "error while linking /home/mk270/.opam/4.00.1/lib/pgocaml/pa_pgsql.cma.\nReference to undefined global `Batteries'")
<mk270>
sorry - only meant to paste that once
<mk270>
now i have "batteries" before pgocaml in the buildDepends: line, but no dice :(
watermind has joined #ocaml
<gasche>
mk270: are you using ocamlbuild?
<mk270>
gasche: i don't think so, unless obuild is calling it internally
<mk270>
(obuild is a little secretive about how it does things)
<watermind>
trying to install coq via opam I get this error:
<watermind>
Application of /home/user/.opam/4.00.1/build/coq.8.4pl1/coqmktop.patch failed: can not determine the correct patch level.
<watermind>
any idea what this is / how to work around it?
<watermind>
should I be asking in another channel?
<watermind>
my opam version is 1.0.0
<gasche>
watermind: looks like a packaging issue
<gasche>
imho, there is not much point to install Coq through opam
dsheets has joined #ocaml
<watermind>
gasche: why not though?
<gasche>
opam is good for playing with recent OCaml libraries during your own OCaml development, and possibly switch between OCaml versions
<gasche>
this is where its added value is
<gasche>
if what you want is install *programs* to use them as a simple user (not develop them), your good old package manager will do as good a job, or better
<watermind>
gasche: right I see what you mean... I'm actually used to install all things haskell via cabal
<gasche>
(granted, for Coq there is the issue of wanting to use recent (8.4) versions that may not be packaged on your system yet)
<watermind>
gasche: e.g. agda
<gasche>
from what I hear on the agda list, recent versions of GHC or cabal libs often break agda's build
<gasche>
s/often/frequently/
<gasche>
mk270: I believe the problem may be that pg'ocaml tries to run code at preprocessing time, not only to compile the stuff
<gasche>
your build system may not thinking of handling the batteries dependency to the camlp4 command-line arguments as well as ocamlc's
<gasche>
watermind: OPAM allows you to keep a "system" version of OCaml and that's what I use for programs I want to install
<gasche>
besides, you may want to report your issue on the opam package bugtracker
<mk270>
gasche: indeed - it's the dependency bit that's getting confused. maybe i'll try to switch to ocamlbuild
<watermind>
gasche: there is an unofficial coq package but it requires me to downgrade ocaml
<watermind>
so my only options are really to either compile it myself or use opam
<watermind>
since coq may could require me to install some extra ocaml related libs it seemed safer to use opam so that it'd download the appropriate versions and keep my system consistent
chambart has joined #ocaml
<gasche>
mk270: ocamlbuild may also have a problem with that
<gasche>
(but then I would have been able to make recommendations)
<gasche>
I would suggest that you report this use case to the obuild people, so that they can see if they want to put more work to handle it
<gasche>
regarding your precise problem, I would recommend using bare ocamlfind in this case
<mk270>
gasche: cheers :(
<mk270>
i've already filed a related ticket with the obuild maintainer
<mk270>
but the last time i filed something with him (on some SHA checksum library) it took months to get action
ygrek has quit [Ping timeout: 276 seconds]
<gasche>
something around ocamlfind ocamlc -syntax camlp4o -package pgocaml,pgocaml.syntax ...
<mk270>
cheers
<mk270>
but the ocaml build / packaging system fragmentation problem seems to be getting worse
<adrien_oww>
build, I won't say anything about it
<adrien_oww>
packaging, it's all ocamlfind these days
<gasche>
indeed, ocamlfind is great
<gasche>
re. ocamlbuild, it has some problems but in this precise case it is a small bug that I've been too lazy to fix for months now
<gasche>
anyone could fix it, but nobody seems interested in contributing
<gasche>
I feel a bit less tolerant to complaints when I see the untaken opportunities for contributions
<gasche>
(granted, there are also people that *do* contribute and also have legitimate complaints, such as sgnb)
ontologiae_ has joined #ocaml
Zeev has quit [Disconnected by services]
Zeev has joined #ocaml
<mk270>
i think i'd take a stricter meaning of "untaken opportunities"
<mk270>
i have at least sent one pull request back the oasis people
<gasche>
the oasis person
<gasche>
mk270: did it work well?
<mk270>
but the state of the system (ocamlfind, ocamlbuild, opam, oasis, obuild, etc, etc) is so fragmented that it takes days to add a single library to a project, therefore there's no time to help fix the tools
<gasche>
I see the point
<mk270>
i want basically just a web framework for ocaml
<mk270>
so i looked at ocsigen and mirage-www / cohttp
<mk270>
and mirage imports mirari, which imports obuild
<gasche>
there is also something in ocamlnet, and Ohm
<mk270>
and obuild doesn't work with pgocaml, and so on and so on
<mk270>
it's like no-one has stood back and looked at the game theory and economics of this situation
<gasche>
(first time I hear about mirari)
<mk270>
apparently it writes an obuild config file
<gasche>
I agree that we don't have a convenient ready-made answer for web development yet
<Drup>
mk270: you're confusing a big some things, ocamlbuild/obuild, oasis also in some way, are build systems, ocamlfind is a *local* package manager and opam is a package manager
<Drup>
a bit*
<mk270>
drup: i'm aware what they all do - they're not perfect substitutes or complements for each other
<gasche>
I would like to help a convergence to
ggole has joined #ocaml
<gasche>
(ocamlfind + whatever build-system you want + oasis) on the developper side, opam on the packager side
Neros has quit [Ping timeout: 252 seconds]
<gasche>
in fact oasis is good at hiding away the ocamlfind layer
<gasche>
so people can practically *produce* oasis descriptions and *use* libraries through ocamlfind, that they *installed* with opam
<gasche>
(or godi, for that matter)
<gasche>
with everyone free to choose the build system they fancy
<gasche>
(the realistic option in the present world of lots of different solutions)
<companion_cube>
ocamlbuild -use-ocamlfind is pretty simple too
<watermind>
is there some site describing the whole ecosystem? I still find the whole thing a bit confusing
<Drup>
I never managed to use oasis, I find it utterly bloated. IMO the only problem with ocamlbuild is the documentation. But I do only small project so my opinion is not really relevant.
<asmanur>
gasche: is it possible to generate an opam package from an oasis description ?
<mk270>
no, the opinions of people doing small projects are certainly relevant
<Drup>
asmanur: yes
<asmanur>
Drup: for small projects I think that oasis is just fine
<Drup>
asmanur: there is a script to do that
<gasche>
watermind: I don't think there is such a website
<gasche>
there is good documentation for opam, godi and ocamlfind
<mk270>
ok, but there's no good documentation for the "_tags" language
<gasche>
if people here have recommendations of what such a page should look like (or even better, propose something!), we can add it to ocaml.org
<Drup>
mk270: when you have a small project, the choice of the build system is not very critical, you can just use the ocamlmakefile and everything will work.
<mk270>
it's incomplete - try to work out what you need to add to get lwt working, and why oasis doesn't do this for you automatically. you can't, from the docs
<Drup>
mk270: yeah, the documentation for ocamlbuild is not good, that's a big problem.
<gasche>
mk270: can you provide a patch to the existing documentation to fix that problem?
<gasche>
maybe we should organize a "documentation sprint"
<Drup>
I would like to write the documentation, if I actually understand the whole thing, which is not the case.
<gasche>
we have a self-organized "packaging sprint" a few years ago, it was not a wide success
<gasche>
Drup: can you try from what you already know?
<mk270>
drup: exactly - no-one with time/motivation to write the docs understands the whole system
<gasche>
(I'm not sure it's always the people that are intimately familiar with the system that write the best documentation)
<asmanur>
gasche: why do you like sprints so much ? do you feel like keeping in shape with those ? :p
<gasche>
asmanur: do you have links on the relation model + proof nets?
<gasche>
(go edit your answer if you do)
<Drup>
gasche: I could, when I got the time :x
<gasche>
asmanur: sprints are one way to motivate oneself to work on a rather boring but helpful topic
<adrien_oww>
(and beer)
<mk270>
ok - so ocaml.org needs "ecosystem" docs (if it doesn't have them already)
<asmanur>
gasche: well no, olivier told me about that, i'm trying to find a reference
<mk270>
i'm happy to send ocaml.org some more pull requests to help fix this
<gasche>
mk270: can you do something right now, and send it on the chan for review before submitting a PR?
<mk270>
gasche: ok, that's terrible
<gasche>
I would be happy to provide details and links if I can
ollehar has joined #ocaml
<gasche>
one remark: contrarily to blog posts, ocaml.org pages need, I think, to be inclusive and respectful of all solutions
<gasche>
you cannot really write "to make things simple, we'll say that the *best* build system today is <foo>"
<mk270>
gasche: ocaml.org needs a *descriptive* not evaluative or normative account of the ecosystem
<mk270>
what exists, not "is it any good" or "what you should use" - those are separate documents, and might not belong on ocaml.org
<gasche>
agreed
<gasche>
but still you must be careful not to create confusion or decision fatigue
<gasche>
there is a delicate balance here
<gasche>
-- which is probably why people avoided writing good pages in the first place
<gasche>
but I see you have good ideas of what to do; would you do that right now?
<mk270>
as i said, *right* now i need to get back to my actual, paying clients! :) but later today
<mk270>
and yes, i'll come back to #ocaml before sending any PR
<gasche>
fine, thank you
<gasche>
(in more than three hours I won't be there anymore, but then I can catch back tomorrow)
ollehar has quit [Ping timeout: 245 seconds]
<gasche>
asmanur: so your answer is basically FUD :-'
wmeyer has joined #ocaml
<wmeyer>
hi
<gasche>
hi
<gasche>
you just missed a motivational discussion about the fragmentation of OCaml tooling ( ocamlfind + build systems + package managers )
<watermind>
is there a way to install libraries system wide with opam?
ollehar has joined #ocaml
<gasche>
watermind: no, I don't think so
<gasche>
(in theory you could set the OPAM prefix somewhere in /usr, but that's not well supported I think)
<wmeyer>
yes, I have logged into ssh yesterday, and forgot to log out
<watermind>
I was trying to compile coq now, but by default at least it tries to do a systemwide install, it looks for lablgtk which I do have installed locally with opam but that doesn't help
<companion_cube>
awwww, why3 still requires coq :/
<adrien_oww>
you can play with ocamlfind environment variables but I can't recall right now
<adrien_oww>
it takes some time to dig that up
<wmeyer>
watermind: you have to install labltgk the same repository
<adrien_oww>
an "ocamlfind by example" / "ocamlfind recipes" would probably be good
<watermind>
wmeyer: coq is not from a repo, I just downloaded the sources
* adrien_oww
pushes that to the TODO list
<watermind>
coq from that same opam repo failed
<watermind>
I'm trying a local installation now
<watermind>
but I'm not so sure coq will look for lablgtk2 under the opam local config directory
ollehar has quit [Ping timeout: 256 seconds]
<watermind>
companion_cube: are you sure? I think I have why3 installed and not coq
<companion_cube>
watermind: I mean, from opam
<gasche>
adrien_oww: we had that on the old COCAN wiki
<gasche>
the ocamlfind documentation is actually relatively good
<watermind>
companion_cube: I have lablgtk from opam...
<gasche>
asmanur: ah, that was the paper I was looking at
<adrien_oww>
gasche: agreed, the documentation is very good but sometimes you really only want examples
<gasche>
watermind: if you compile Coq by hand you can get ride of the lablgtk dependency
<adrien_oww>
I don't remember seeing that
<gasche>
adrien_oww: we wrote some after the *first* OCaml Meeting
<gasche>
back in 2008
<watermind>
gasche: but I am... and it failed because of some missing .so file related with lablgtk
<gasche>
oO
<adrien_oww>
gasche: ah
<gasche>
adrien_oww: back in the days surprisingly few libs came with a META file
<gasche>
it's much more common now
<watermind>
gasche: not sure why this would happen since think lablgtk is optional
<adrien_oww>
gasche: yeah, I remember that and I'm very very glad we're over this
<gasche>
so you can just look at any package you know of and imitate the META file
<gasche>
but I agree that would probably be suitable for an ocaml.org subpage
<adrien_oww>
gasche: I was rather looking for examples on how to use env vars to do dirty^Wfunky things with ocamlfind
<gasche>
ah
<gasche>
you mean having several toolchains etc.
<adrien_oww>
for instance
<mk270>
gasche: wmeyer and i have discussed some of this before
<gasche>
asmanur: I had a look at the introduction, but stopped focusing after not seeing the underlying point after a few paragraphs
<gasche>
I'm not even convinced by your comment about beta-reduction and cut-elimination being fundamentally different
<asmanur>
gasche: the point is that it allows you to easily compute the relation corresponding to a proof net
<gasche>
I personally find explicit substitutions to be a very boring topic, so maybe I'm just an outsider to those subtleties
eikke has joined #ocaml
<asmanur>
gasche: I used very recently when I tried to understand in categorical terms intensional models of untyped λ-calculus
<gasche>
asmanur: I have no idea what those relations may be
<asmanur>
well
<asmanur>
perhaps in terms more familiar to you
<asmanur>
if you want a DSL to talk about relations, MELL-proof nets are way better than λ-calculus
<gasche>
what kind of relations?
<asmanur>
hm
<asmanur>
any relation :)
<gasche>
it looks like there is a not a single example "here is a relation and its corresponding proof net" in the paper
<asmanur>
gasche: they are talking about Rel the category of objects and relations
<asmanur>
for instance, the derelection in that category !A → A is the relation which relates {a} to a
<gasche>
but why would I use proof nets to work with relations?
<asmanur>
(!A = finite multisets over A)
<asmanur>
because you have a semantics that maps a judgement Γ ⊦ t : A
<asmanur>
to a relation from ⟦Γ⟧ to ⟦A⟧
<asmanur>
and you want to prove correctness
<asmanur>
you have two options
<asmanur>
- do the set-theoretic computations that are boring and error-prone
<asmanur>
- compute on the proof-net level
<gasche>
so you're saying that it's easier to build models of type theories using proof-net than lambda-terms as proof terms?
<companion_cube>
is it me, or did this chan just morph into #categorytheory? ^^
<gasche>
no categories, no sir
<gasche>
(well he did say "Rel" but that's nothing)
<gasche>
sorry if that's off-topic
<companion_cube>
no problem :)
<companion_cube>
what's a proof net, by the way? A proof-theoretic object?
<gasche>
it's a form of syntax for terms in linear logic
<gasche>
s/terms/proofs/
<companion_cube>
oh. linear logic.
<gasche>
roughly speaking it's a graphic representation of proofs that allows to manipulate subformulas "in parallel", and therefore gives you less useless choices than the usual derivation-tree presentations of proofs
<gasche>
it comes with a dynamic semantics that is a very simple form of graph rewriting, simpler than substitution in lambda-calculus for example (because linear logic is more low-level)
<companion_cube>
seems interesting
<companion_cube>
(although substitution is not that complicated)
<Drup>
it's also very hard to draw in latex ;)
<gasche>
well you can easily learn about that by going to the "linear logic" course at MPRI next year
<gasche>
whether you will find that relevant to anything you're actually interested in is another story
<companion_cube>
I'm not really into low-level proofs, unlike some other people in my team ;)
<gasche>
people working on linear logic usually think that they are on the edge of discovering the "true nature of computation" (anytime now... since 1987), so they think everyone should be interested in that
letrec has joined #ocaml
<gasche>
I don't think we've seen anything really appealing for the applied programming language theorist yet
<companion_cube>
that's perfect, I'm only interested in proofs, not computation ^^
<gasche>
hm
<companion_cube>
(or in computation of proofs, ok)
<gasche>
maybe the work on implicit complexity and linear logic: type systems for functional programming language that guarantee polynomial complexity for programs
<gasche>
that's rather nice
<gasche>
and various ideas for proof search that may percolate to some proof assistants or even logic programming languages
Drup has quit [Read error: Connection reset by peer]
Drup has joined #ocaml
Drup has quit [Client Quit]
Drup has joined #ocaml
mathieui has quit [Ping timeout: 248 seconds]
polyvar has joined #ocaml
dsheets has quit [Read error: Operation timed out]
gildor has quit [Quit: leaving]
ygrek has joined #ocaml
ollehar has joined #ocaml
scottj has left #ocaml []
<letrec>
opam at "deb [arch=amd64] http://www.recoil.org/~avsm/ wheezy main" is a bit out of date, are there any plans to update it?
<letrec>
also, it doesn't have shell completion files packaged with it
<avsm>
letrec: yeah. just not had time. debian package builds are painful.
<avsm>
i was waiting for it to hit experimental upstream, but its taking forever
<orbitz>
turn around time for opam in nixpkgs: 1 day ;)
ollehar1 has joined #ocaml
ollehar has quit [Ping timeout: 240 seconds]
<avsm>
idd, and homebrew. not blaming debian though; but the process is rather opaque
Neros has joined #ocaml
talzeus_ has quit [Remote host closed the connection]
<asmanur>
companion_cube: i would not say that "substitution is not that complicated" :)
<companion_cube>
well, once you have it, you're done since you have lambda calculus :)
hkBst has quit [Read error: Connection reset by peer]
hkBst has joined #ocaml
hkBst has quit [Changing host]
hkBst has joined #ocaml
Drup has quit [Ping timeout: 264 seconds]
ygrek has quit [Ping timeout: 248 seconds]
ollehar has joined #ocaml
ollehar1 has quit [Ping timeout: 276 seconds]
Zeev has quit [Disconnected by services]
Zeev has joined #ocaml
hkBst has quit [Ping timeout: 248 seconds]
hkBst has joined #ocaml
chambart has quit [Ping timeout: 246 seconds]
ocp has joined #ocaml
mathieui has joined #ocaml
Zeev has quit [Disconnected by services]
Zeev has joined #ocaml
chambart has joined #ocaml
ttamttam has joined #ocaml
Drup has joined #ocaml
raichoo has quit [Quit: leaving]
troydm has quit [Read error: Operation timed out]
troydm has joined #ocaml
hkBst has quit [Quit: Konversation terminated!]
Yoric has quit [Ping timeout: 240 seconds]
ttamttam has quit [Quit: ttamttam]
talzeus has joined #ocaml
talzeus has quit [Ping timeout: 252 seconds]
cago has left #ocaml []
mika1 has quit [Quit: Leaving.]
Drup has quit [Ping timeout: 240 seconds]
talzeus has joined #ocaml
ygrek has joined #ocaml
ocp has quit [Ping timeout: 240 seconds]
thomasga has quit [Quit: Leaving.]
eikke has quit [Ping timeout: 276 seconds]
t4nk365 has joined #ocaml
<t4nk365>
list (with List.assoc), records and hashtables all seem to have characteristics of dictionaries used in other languages (like Python)... are any one of these preferred over others?
alang__ has quit [Ping timeout: 246 seconds]
<companion_cube>
t4nk365: depends on the usage
<companion_cube>
first, records are type-safe, fixed-length structures
<t4nk365>
ok
<companion_cube>
so they are used to define your own types (a bit like classes in python, say)
<companion_cube>
(but less dynamic)
yacks has joined #ocaml
<companion_cube>
List.assoc is slow on big lists, it's not that useful
<companion_cube>
Hashtbl is the true imperative associative container
<thizanne>
Hamt !!
<companion_cube>
thizanne: *imperative* :p
<t4nk365>
ah, so it sounds like hashtbl is the closest to python dictionaries
<thizanne>
yes i know
<companion_cube>
(otherwise, Map is fine)
talzeus has quit [Remote host closed the connection]
<thizanne>
but I could not not-mention it
<companion_cube>
t4nk365: yes, but they are typesafe
<orbitz>
t4nk365: hide everything behindan interface and you can swap out the implementation whenever you want :)
<t4nk365>
i havent learned about Map yet, will look into that
<t4nk365>
orbitz: thats a good suggestion, for programming in any language
dsheets has joined #ocaml
thomasga has joined #ocaml
darkf has quit [Quit: Leaving]
alang__ has joined #ocaml
zpe has quit [Remote host closed the connection]
Arsenik has joined #ocaml
Yoric has joined #ocaml
zpe has joined #ocaml
zpe has quit [Ping timeout: 246 seconds]
ttamttam has joined #ocaml
pango_ has joined #ocaml
pango has quit [Ping timeout: 276 seconds]
watermind has quit [Quit: Konversation terminated!]