2,865 reputation
1015
bio website jelv.is
location Berkeley, CA
age 21
visits member for 3 years, 7 months
seen yesterday

I am a student 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.

I am currently an undergraduate researcher at the Berkeley ParLab, working on program synthesis. This past summer, I was a tech intern at Jane Street Capital, brazenly using OCaml in the real world. Right now, I'm leading a meetup group about type theory; you can see the slides here or just show up to the next on if you live near SF ;).

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

GitHub: http://github.com/TikhonJelvis

Website: http://jelv.is


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
Jan
1
answered Type systems: nominal vs. structural, explicit vs. implicit
Dec
31
comment Why aren't user-defined operators more common?
How much "school" do you count? For example, I think ∈ for elem is a great idea and certainly an operator everybody should understand, but others seem to disagree.
Dec
30
comment Why aren't user-defined operators more common?
Have you looked at how Haskell does custom operators? They work exactly like normal functions, except they also have an associated precedence. (In fact, so can normal functions, so even there they don't really differ.) Basically, operators are infix by default and names are prefix, but that's the only difference.
Dec
21
awarded  Enlightened
Dec
21
awarded  Nice Answer
Dec
3
comment Is it bad to use Unicode characters in variable names?
Emacs supports a bunch of nice input methods that make typing Unicode symbols easy. (Including a TeX one which is what I use.) Emacs is hardly futuristic. (It is awesome, of course.)
Dec
3
comment Is it bad to use Unicode characters in variable names?
Also, I think the Unicode makes mathematically oriented code more readable. It lets you get the meaning of the code at a glance, just like the formula it comes from. The letters already have well-known meanings from context. So if you're already familiar with the given formula or the general area, you can read the code without having to parse the identifiers. If you're not familiar with the formula, you should probably look it up even with long variable names. And once you've looked up and understood the formula, the Unicode version is again easier to read.
Dec
3
comment Is it bad to use Unicode characters in variable names?
Reasonable editors have reasonable input methods for Unicode which make it easy to edit code like this. For example, Emacs supports (among other things) the TeX and rfc1345. TeX is just what it sounds like; it lets you type \sigma for σ and \to for . rfc1345 gives you some combinations like &s* for σ and &-> for . As a rule of thumb, I do not worry about accommodating programmers using editors less capable than Emacs.
Dec
3
awarded  Yearling
Nov
29
awarded  Nice Answer
Nov
26
comment Why is the concept of lazy evaluation useful?
@AlexNye: The John Hughes paper has more info. Despite being an academic paper---and therefore no doubt intimidating---it's actually very accessible and readable. If not for its length, it would probably fit as an answer here!
Nov
24
comment Is there a name for this functional programming construct/pattern?
@JimmyHoffa: I don't know about SML, but I've used OCaml, which is similar, and it does support currying almost as ubiquitously as Haskell. However, the coding style seems different: in Haskell, almost every function you write is curried; in OCaml, people often write functions that take a tuple (e.g. uncurried). Things like int * int -> int as opposed to int -> int -> int. I think this is only a matter of code style though.