Morphous has quit [Read error: 110 (Connection timed out)]
pants4 has quit [Read error: 104 (Connection reset by peer)]
pants2 has quit [Read error: 110 (Connection timed out)]
pants3 has quit [Read error: 110 (Connection timed out)]
pants2 has joined #ocaml
pants1 has joined #ocaml
buluca has joined #ocaml
pants3 has joined #ocaml
pants4 has joined #ocaml
pants5 has joined #ocaml
pants6 has joined #ocaml
magnusj has joined #ocaml
pants4 has quit [Read error: 104 (Connection reset by peer)]
pants4 has joined #ocaml
pants7 has joined #ocaml
pants8 has joined #ocaml
pants9 has joined #ocaml
pants2 has quit [Success]
pants1 has quit [Read error: 110 (Connection timed out)]
pants1 has joined #ocaml
pants3 has quit [Connection timed out]
pants5 has quit [Connection timed out]
pants6 has quit [Connection timed out]
pants8 has quit [Read error: 104 (Connection reset by peer)]
pants4 has quit [Read error: 110 (Connection timed out)]
pants7 has quit [Connection timed out]
pants9 has quit [Connection timed out]
magnusj_ has quit [Read error: 110 (Connection timed out)]
pants1 has quit [Connection timed out]
pants1 has joined #ocaml
pants2 has joined #ocaml
pants3 has joined #ocaml
pants4 has joined #ocaml
pants5 has joined #ocaml
mng has quit []
pants6 has joined #ocaml
pants7 has joined #ocaml
pants4 has quit [Connection reset by peer]
pants4 has joined #ocaml
pants1 has quit [Connection timed out]
pants2 has quit [Connection timed out]
pants3 has quit [Connection timed out]
pants5 has quit [Connection timed out]
pants6 has quit [Connection timed out]
pants7 has quit [Connection timed out]
pants4 has quit [Connection timed out]
psnively has quit []
buluca has quit [Read error: 113 (No route to host)]
yminsky has joined #ocaml
<yminsky>
wy: Hello back (belatedly). Might I ask with who I have the pleasure of chatting?
<wy>
yminsky: ??
<yminsky>
wy: I just reconnected to my chat server and noticed an extremely stale hello from you. Perhaps a week old. So I thought I'd say hello back and ask who you are. Sorry for the obscurity.
<wy>
haha. I remembered
<Smerdyakov>
Dude, you can't say "chat server" on IRC. That's like having your mom pack your lunch for you. :P
<wy>
yminsky: Actually I've sent you email about OCaml
<wy>
yminsky: Are you working for Janestreet?
<yminsky>
Apologies. I am hopelessly old and out of tune with the young IRC kids.
<yminsky>
I do indeed. As does Smerdyakov. Jane Street employees are lurking everywhere.
<Smerdyakov>
We have offices in New York, London, Tokyo, and the bushes outside wy's house.
<yminsky>
Although I'm still in the dark as to who wy is...
<wy>
That's interesting. I heard the company from Wojciech
<Smerdyakov>
wy, dude who worked in the Nuprl project?
<wy>
I'm a second year PhD at Cornell who I'm afraid is the last student who would like to do FP here ;-)
<wy>
Right. I don't know his work much, but we talked about programming languages some time ago
<yminsky>
Yeah, I've spoken to some people and gotten the sense that FP has fallen on hard times at Cornell. Now that Greg is gone especially.
seafood_ has quit []
<wy>
Was he there when you were at Cornell ?
<wy>
Actually it seems it's having hard time everywhere in the US, except at janestreet ;-)
<yminsky>
He was. When I left it felt like OCaml was starting to wane. Mark Hayden (the guy who wrote Ensemble) was already gone at that point.
<yminsky>
Functional programming is doing pretty well at Jane Street, no doubt. Sounds like it's doing pretty well at Microsoft too. There are serious noises being made about getting F# to be a first-class language, delivered with your shrink-wrapped copy of visual studio and everything.
<yminsky>
(I think you can tell that I'm not a real IRC'r by the fact that my commetns are three times as long as anyone elses.)
<wy>
microsoft finally made a right choice :-)
<wy>
I just hang around here to learn FP in the winter. #haskell has a lot of people
<wy>
I sent you email about some design choices because I was planning a full featured ray tracer in some FP
<yminsky>
Hmm. I don't remember that one off-hand. Did I respond? It may have got lost in my avalanche of mail.
<wy>
Yes. It's lost ;-) I just wanted to know how do you compare OCaml and Haskell, because they are the major two choices
<yminsky>
It's hard for me to do that intelligently, since I know Haskell almost strictly by reputation.
<wy>
I'm writing it in haskell right now. I guess OCaml might be more natural sometimes because I can still use the built-in arrays. There is lots of uncertainties when it comes to this kind of thing in Haskell
<wy>
Did you start to use ocaml when you were studying your PhD?
<yminsky>
I did. I had a number of heavy OCaml-users as office mates, and they got me hooked.
<wy>
That was so nice! Now everybody is using Java
<yminsky>
I do like the ability to go back and forth between functional and imperative code in OCaml. I'm generally kind of suspicious of the idea that pure languages are the right approach. Being explicit about state is nice, but I suspect it makes many things unnecessarily complicated.
<wy>
yes. It's a little complicated, especially when it comes to monads
<Smerdyakov>
Until you want to prove your programs correct, and then it becomes clear why it's all worth it. ;)
* Smerdyakov
disappears mysteriously on that note.
<wy>
Smerdyakov: I spent a whole day studying its type class system and I found it really nice. The diamond problem doesn't really exist there. But when it comes to something like graphics, it's not that natural. I really don't know how fast my final program will turn out to be
<wy>
It's unbelievable you could make OCaml the main language in a commercial company. Maybe I can learn some strategy from you. Well, time to back to reading. See you! :-)
<yminsky>
Cheers.
yminsky has quit []
orbitz has joined #ocaml
__suri has joined #ocaml
<orbitz>
hello, i'm tryign o build my own functions for reading/writing csv files and i'm trying to read in a row and then split it on a seperator so i want to walk the returned string looking for quotes and escape chracters and translate that into a list of values but i'm finding splitting the row is causing me to create a bunch of auxillary functions that tak ea lot of parameters and seem to get kind of ugly quickly. any suggestions?
<pango>
you're trying to write this in a purely functional way?
<orbitz>
not purely, i'm relying on sude ffect sof reading an in_channel
<orbitz>
side*
<orbitz>
bu the particular spliting i thought writin gin a pure funcitonal way would be good
<orbitz>
csv module seems to se ref's for that
<pango>
yep... another way to avoid tons of parameters could be to bundle related values in records, maybe
<wy>
tons of parameters... That's also the problem I got when I try to use Haskell. Not sure how to handle it purely
<orbitz>
doing it in a non-pure-functional way seems like the best way
__suri_ has joined #ocaml
<orbitz>
on a seperate note, I'm unsure of what to make of module paramaterization. would I want to do somethign liek module SetString = Set.Make(String);; or would i want to create a module based around the purpose not the type?
__suri has quit [Connection timed out]
<tsuyoshi>
hrm.. I wrote some csv code a while ago,it wasn't hard, was completely functional
<orbitz>
tsuyoshi: did it handle quoting fields and escaping cahracters?
<tsuyoshi>
yes
<orbitz>
hrm, interesting
<orbitz>
is it online?
<tsuyoshi>
let me see if I can dig it up
<orbitz>
coming from java/python/c++ i woudl think I would want to make a set string like let ss = Set.Make(String) as an instance but that doens't seem to be how it is done
<tsuyoshi>
ah, sorry, it on my laptop back at the guesthouse
<tsuyoshi>
er
<tsuyoshi>
it is on my laptop back at the guesthouse
<orbitz>
ok thanks
<tsuyoshi>
no, Set.Make(String) is a module
<tsuyoshi>
so you do
<tsuyoshi>
module SS = Set.Make(String)
<tsuyoshi>
or module Ss = ...
<tsuyoshi>
you can't put a module into a regular variable
<orbitz>
right i know but i'm asking why it is that way a and how one sohuld use it, create module sby type sor by purpose
<tsuyoshi>
I dunno.. I avoid functors, they seem tobe more trouble than they're worth
<orbitz>
so how would you make a set of strings?
<tsuyoshi>
well
<tsuyoshi>
just like that
<tsuyoshi>
module StringSet = Set.Make(String)
<orbitz>
but don't you avoid them?
<tsuyoshi>
hmm... well I don't think I've used sets
<orbitz>
what about maps?
<tsuyoshi>
for the Map module, there's a version in extlib that doesn't use a functor
<tsuyoshi>
and that's what I've used
<tsuyoshi>
I don't think there is a non-functor version of Set so I would probably use the functor
<orbitz>
with the functor version can I make a version of a function taht work son all Sets?
<tsuyoshi>
not as far as I know
<orbitz>
that's a letdown
<tsuyoshi>
but it's not hard to rewrite the set module that comes with ocaml to make it do that
<tsuyoshi>
but keep in mind, any particular set would only work with one type
<tsuyoshi>
it's only the functions that could be polymorphic
<orbitz>
i gotta go for now, thanks for the answers
seafood_ has joined #ocaml
asmanur has joined #ocaml
qpu is now known as lag
lag is now known as qpu
<pango>
tsuyoshi: benefits of using functors here are: * you don't need to pass everything containers need to know about keys to create function. Currently it's just keys type and keys comparison function so it's ok, but it doesn't scale
qpu is now known as beer
beer is now known as qpu
<pango>
* polymorphic approach would let you do stupid things, like comparing/merging/intersect/... containers that are incompatible because their keys don't use the same comparison function
<pango>
(that's probably why there's Map.compare and Map.equal, but no PMap.compare or PMap.equal)
seafood_ has quit []
buluca has joined #ocaml
olleolleolle has joined #ocaml
olleolleolle has quit []
jlouis_ has joined #ocaml
dobblego has quit ["Leaving"]
jlouis has quit [Read error: 110 (Connection timed out)]
Tetsuo has joined #ocaml
seafood_ has joined #ocaml
buluca has quit [Read error: 113 (No route to host)]
wy has quit ["Ex-Chat"]
jlouis has joined #ocaml
olleolleolle has joined #ocaml
filp has joined #ocaml
thermoplyae has quit ["daddy's in space"]
jlouis_ has quit [Read error: 110 (Connection timed out)]
jlouis_ has joined #ocaml
Tetsuo has quit [Remote closed the connection]
gaja has quit ["leaving"]
jlouis has quit [Read error: 110 (Connection timed out)]
qpu is now known as qpu_away
ertai has joined #ocaml
dons has joined #ocaml
dons has left #ocaml []
sergez has quit ["Leaving."]
olleolleolle has left #ocaml []
Associat0r has joined #ocaml
rwmjones has joined #ocaml
qpu_away is now known as qpu
buluca has joined #ocaml
hkBst has joined #ocaml
Snark has joined #ocaml
Snark has quit [Read error: 113 (No route to host)]
buluca has quit [Read error: 110 (Connection timed out)]
Yoric[DT] has joined #ocaml
ppsmimou has quit ["Leaving"]
<Yoric[DT]>
hi
ppsmimou has joined #ocaml
ertai has quit [Read error: 110 (Connection timed out)]
<qwr>
?
ttamttam has joined #ocaml
ertai has joined #ocaml
seafood_ has quit []
Mr_Awesome has quit [Read error: 110 (Connection timed out)]
Torment has quit [Read error: 104 (Connection reset by peer)]
Jomyoot has joined #ocaml
seafood_ has joined #ocaml
Jomyoot has left #ocaml []
marmottine has joined #ocaml
* Yoric[DT]
guesses his second release of Comprehension for OCaml will have to wait until January.
<Yoric[DT]>
There's a bug (probably OCamlBuild-related) I can't solve yet.
postalchris has joined #ocaml
lde has joined #ocaml
rwmjones has quit ["Closed connection"]
rwmjones has joined #ocaml
ygrek has joined #ocaml
Snark has joined #ocaml
buluca has joined #ocaml
seafood_ has quit []
qpu has quit []
Demitar has quit ["Burn the land and boil the sea. You can't take the sky from me."]
seafood_ has joined #ocaml
Tetsuo has joined #ocaml
buluca has quit [Read error: 113 (No route to host)]
seafood_ has quit []
gene9 has joined #ocaml
gene9 has quit [Client Quit]
xavierbot has joined #ocaml
ttamttam has left #ocaml []
gim has quit [Read error: 110 (Connection timed out)]
pango has quit [Remote closed the connection]
rwmjones has quit ["Closed connection"]
pango has joined #ocaml
rwmjones has joined #ocaml
ppsmimou has quit ["Leaving"]
rwmjones has quit ["Closed connection"]
mattam has quit ["leaving"]
mattam has joined #ocaml
filp has quit ["Bye"]
ertai has quit [Read error: 110 (Connection timed out)]
jlouis has joined #ocaml
bebui_ has joined #ocaml
bebui has quit [Read error: 104 (Connection reset by peer)]
jlouis_ has quit [Read error: 110 (Connection timed out)]
__mattam__ has joined #ocaml
mattam has quit [Read error: 104 (Connection reset by peer)]
Associat0r has quit []
__mattam__ is now known as mattam
bluestorm has joined #ocaml
__mattam__ has joined #ocaml
Jeff_123 has joined #ocaml
l_a_m has quit [Remote closed the connection]
mattam has quit [Read error: 110 (Connection timed out)]
__mattam__ is now known as mattam
buluca has joined #ocaml
buluca has quit [Remote closed the connection]
buluca has joined #ocaml
asmanur is now known as asma
|Catch22| has quit []
<jonafan>
asdf
<Yoric[DT]>
bless you
<jonafan>
is it just me or does the interactive haskell thing suck
ttamttam has joined #ocaml
<Yoric[DT]>
I actually like it.
kelaouchi has joined #ocaml
<bluestorm>
jonafan: from an ocaml-user point of view, it sucks (if you're talking about ghci)
<bluestorm>
i haven't found how to use it to actually *do* things
<jonafan>
i don't understand it, it seems like it's interpreting a different language
<bluestorm>
although it's kind good at giving types or kinds
<bluestorm>
s/kind/quite/
<jonafan>
also i don't know haskell so this is complicated
<bluestorm>
:p
wy has joined #ocaml
<bluestorm>
if you're only interested about haskell novel features, you might keep reading code instead of writing it, as i do
<bluestorm>
it's easy to find some interesting haskell code around, and with some training it's quite easy to read it
<bluestorm>
(the syntax is not so far from ML actually)
<jonafan>
yeah that's kind of why i want to pick up the syntax
<bluestorm>
writing is harder, and i haven't found an actual use for it anyway
<bluestorm>
(if you want to catch the syntax, any haskell tutorial will be worth reading)
<Yoric[DT]>
The one thing I dislike with Haskell programs is the tendency Haskell programmers have of using subtle notations.
<Yoric[DT]>
(e.g. $)
<Yoric[DT]>
OCaml users tend to be slightly more disciplined than this.
jlouis_ has joined #ocaml
<wy>
There is consistency in the things even if you found it subtle, for example ($) has a type ($) :: forall a b. (a -> b) -> a -> b, which is perfectly legitimate
jlouis has quit [Read error: 110 (Connection timed out)]
kelaouchi has quit [Connection timed out]
Demitar has joined #ocaml
Morphous has joined #ocaml
<bluestorm>
Yoric[DT]: you want to say that OCaml syntax is slightly less flexible concerning symbols binding :-'
Morphous_ has quit [Read error: 110 (Connection timed out)]
jlouis has joined #ocaml
|Catch22| has joined #ocaml
jlouis_ has quit [Connection timed out]
psnively has joined #ocaml
Snark has quit ["Quitte"]
thermoplyae has joined #ocaml
Jeff_123 has quit [Read error: 104 (Connection reset by peer)]
cmeme has quit [Excess Flood]
cmeme has joined #ocaml
ttamttam has left #ocaml []
pango_ has joined #ocaml
pango has quit [Remote closed the connection]
Morphous has quit ["shutdown"]
Amorphous has joined #ocaml
ygrek has quit [Remote closed the connection]
<Yoric[DT]>
wy: I know that there's a consistency.
<Yoric[DT]>
I just find it too subtle.
<Yoric[DT]>
bluestorm: tsss :)
<Yoric[DT]>
Actually, OCaml is flexible enough to have the same kind of subtleties.
asma has quit [Remote closed the connection]
<bluestorm>
hm
<bluestorm>
you can't have ($) with the good associativity in plain ocaml
<bluestorm>
of course using (@$) may be a solution
Demitar has quit [Read error: 145 (Connection timed out)]
smimou has joined #ocaml
psnively has quit []
buluca has quit [Read error: 113 (No route to host)]
buluca has joined #ocaml
<hcarty>
I saw & recommended on the mailing list as another option for a $ replacement
<hcarty>
Though that conflicts with JoCaml
TaXules has quit [Remote closed the connection]
<bluestorm>
and Caml Light
TaXules has joined #ocaml
marmottine has quit ["Quitte"]
wy has quit ["Ex-Chat"]
jonafan has quit [Read error: 104 (Connection reset by peer)]
wy has joined #ocaml
<Yoric[DT]>
Still too subtle even with & :)
buluca has quit ["Leaving."]
TaXules has quit [Read error: 104 (Connection reset by peer)]
TaXules has joined #ocaml
buluca has joined #ocaml
<hcarty>
What does $ do? I use (|>) : 'a -> ('a -> 'b) -> 'b fairly often, but I don't know if they are similar - I'm an OCaml consumer, not a pure CS person
wy has quit [Read error: 104 (Connection reset by peer)]
Mr_Awesome has joined #ocaml
<thermoplyae>
is there a way to specify that that should be right-associative?
<thermoplyae>
something like 3 |> 4 |> (+) doesn't work so well
<pango_>
associativity depends on the first character of the operator
<pango_>
# let ( @> ) x f = f x ;;
<pango_>
# 3 @> 4 @> ( + ) ;;
<pango_>
- : int = 7
<smimou>
what a nasty convention
<thermoplyae>
is the convention outlined somewhere (rather than asking needless questions)?
<pango_>
in the user manual
<thermoplyae>
how obvious
<pango_>
http://caml.inria.fr/pub/docs/manual-ocaml/expr.html: The table below shows the relative precedences and associativity of operators [...] For infix and prefix symbols, we write “*…” to mean “any symbol starting with *”.
Jeff_123 has joined #ocaml
postalchris has quit [Read error: 113 (No route to host)]