3,205 reputation
1117
bio website jelv.is
location Berkeley, CA
age 22
visits member for 4 years, 5 months
seen May 22 at 2:25

I am a software engineer primarily interested in programming languages, functional programming, program synthesis, type theory, universal algebra and startups (not necessarily in that order!). In the near future, I want to combine as many of these as possible.

Right now I'm an engineer at Esper, an early stage startup in Palo Alto. We use OCaml on the backend, which is pretty neat.

I am always happy to chat: my email is tikhon@jelv.is.

I am especially interested in questions and projects involving Haskell or interesting PL issues.

GitHub: http://github.com/TikhonJelvis

Website: http://jelv.is


Feb
12
comment Inspirational software for end-users written in Haskell?
@quant_dev: I'm not quite sure what you mean with that comment, partly because this question did get closed, but largely because this site does not seem biased towards FP at all.
Feb
9
answered Erlang/Haskell web service to server files
Feb
5
comment What's the progress on Haskell records?
The other issue is that if you add a new record system, you can either get rid of the current one, which would be a breaking change, or have two record systems simultaneously, which would be a mess. I think the a.b issue is less important because A.b already means something different from A . b (thanks to the module system). Sure it's a breaking change, but it's not a particularly bad one.
Feb
5
comment What's a good math textbook to have on my desk while studying Haskell?
It's not necessary, but it's fun and it can help. At the very least, I didn't need any category theory for the "how" of Haskell, but learning the basics really helped me with the "why".
Feb
4
awarded  Good Answer
Feb
4
comment What is the advantage of currying?
I've never had problems like that: GHC, at the very least, is very good in that regard. The compiler always catches that sort of issue, and has good error messages for this error as well.
Feb
3
comment What is the advantage of currying?
While the motivation here is theoretical, I think simplicity is almost always a practical advantage as well. Not worrying about multi-argument functions makes my life easier when I program, just as it would if I was working with semantics.
Feb
2
comment What is the advantage of currying?
@Giorgio: Yeah.
Feb
2
awarded  Nice Answer
Feb
1
revised What is the advantage of currying?
added 12 characters in body
Feb
1
comment How do programming languages benefit from being based on English?
@DavidThornley: Some languages, like Haskell, give identifiers starting with upper and lower case letters different roles. Others, like Java, should do that because that's what happens in practice anyhow. (That said, Haskell fully supports Unicode and figures out what role a character plays by its Unicode class.)
Feb
1
answered What is the advantage of currying?
Jan
29
answered Does javascript support numerically indexed arrays with a more optimized algorithm than an associative array?
Jan
26
comment When should I make the first commit to source control?
I do something similar. Since I use GitHub, I also always have a basic README file, even it just contains the name of the project. I find having the file there from the get-go makes it much more likely that I'll update it in the future :).
Jan
26
comment How to code in a more functional style in Java?
Why was this initially downvoted? (I voted it back up to 0.) It seems to be a great answer pointing to some good resources. A comment explaining the downvote would have been nice.
Jan
17
comment Applying Denotational Semantics to design of Programs
When I was looking into FRP, I thought there were some very good examples of denotational semantics making my life simpler--I found behaviors and events far easier to understand and think about after seeing the denotational semantics for them. However, this is a very simple example, so I'm not sure how illustrative it would be.
Jan
16
answered Loop Invariants in Python
Jan
5
comment Determinism of functions using PRNG in Clojure and functional languages
I don't know much about Clojure, but at least in Haskell the random numbers package is designed so that you can give it any generator you want. You can use a global one that gets a seed from the system, but you can just as easily use one with a constant seed. So this is certainly possible--and, in fact, really easy--in Haskell, which is a language even more functional than Clojure.
Jan
1
awarded  Nice Answer
Jan
1
revised Type systems: nominal vs. structural, explicit vs. implicit
added 1038 characters in body