Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jroesch
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
15 ms
·
61.
▲
by
jroesch
12y ago
This may be true about Go, but Rust's traits were very similar to Haskell type classes and now are equivalent in power to Haskell's type classes with several extensions turned on (even though they lack HKTs). As a side note althou
62.
▲
by
jroesch
12y ago
An ideally typed Lisp would be no different then a dependently typed language semantically. Yes, you would use slightly different syntax but a key feature of most dependently typed languages is that they only have a single class of pseudo-t
63.
▲
by
jroesch
12y ago
This is flat out not true. In the academic literature of type theory, "type" has a very particular meaning and is a construct for reasoning about programs before execution. The community may use "tag" but mostly as a m
64.
▲
by
jroesch
12y ago
The key with Maybe/Option types is pattern matching ensures you don't forget to handle the case where it is none (it can be meaningful!). If you have a value of `Maybe a` you are required to pattern match on it. case myMaybe
65.
▲
by
jroesch
12y ago
The above comments are just pointing out that the compiler should do this for you. It is great that there are third party tools for this, but a simple lint like this should come for free, especially when this is the endorsed error handling
66.
▲
by
jroesch
12y ago
Its no different in any other language with macros, the data structures are just bigger. It's pretty easy to write a Rust macro or Scala macro that consists of simple data structure manipulation. I have a simple example here: https:&#
67.
▲
by
jroesch
12y ago
The physicists have even better views then Computer Scientist's do, and it is hard to beat a research environment where this is your view: http://imgur.com/nA4gNcP .
68.
▲
by
jroesch
12y ago
Yeah I'm game to be that person. I have been willing to work on it for months, but between school and making money to support myself to go to school time has been scarce. Feel free to bother me online, pressure is good.
69.
▲
by
jroesch
12y ago
I think one of the core challenges is how traits play with HKTs. You can only allow for the defining of HKed type parameters and type arguments so many ways, but it becomes more complicated when dealing with the resolution of traits around
70.
▲
by
jroesch
12y ago
I'm pretty sure at least a few people have ideas/are working on them. I have a 75% finished RFC that I have been sitting on because the language has been in such flux lately. I wouldn't be surprised if Niko, Aaron or someone
71.
▲
by
jroesch
12y ago
Yes. Many times the compiler will actually infer a type different than the one you wanted. In my experience this just leads to confused programmers who have trouble deciphering what went wrong when presented with the error message.
72.
▲
by
jroesch
12y ago
I'm not sure in what world writing C++11 is "very straight forward ... safe and clean". You can easily write unsafe code without thinking about it. For example one can write a function that lends out a reference or pointer to
73.
▲
by
jroesch
12y ago
I think this will be great for the community. I didn't realize that you were involved as well Jon, should be interesting to see what comes out of it.
74.
▲
by
jroesch
12y ago
Anyone who tries to make the claim that "pretty much hardly anyone uses" is standing on shaky ground. It definitely has not surpassed Java in popularity but it seems to be quickly gaining traction at lots of large companies and is
75.
▲
by
jroesch
12y ago
I think it is misguided to call this an act of ego, like Miles says in the announcement Typesafe has different goals, and milestones that don't necessarily serve the whole community. There are actually tons of nice small changes that h
76.
▲
by
jroesch
12y ago
I second this. I recently did a port from Ruby 1.8.7 to 2.1.2 for a large Rails app (approx. ~350kloc between test and app) and in the process I was forced to update lots of dependencies. In a few places so called "minor" patches
77.
▲
by
jroesch
12y ago
These languages do have very theoretical foundations even though they might not be readily apparent. ML has a rich theory much of which is applicable to both Rust and Swift's type systems. This is even more applicable to Rust where the
78.
▲
by
jroesch
12y ago
That is a nice view in theory, but doesn't mean much in reality, even if they release a spec who is going to be able to build an implementation to compare. It will end up like GNUStep. Even languages that are open like Python have trou
79.
▲
by
jroesch
12y ago
I've had similar feelings over the course of my education. Many students show up wanting to be taught how to do game dev, web dev, iOS or what ever the "hot" thing is. It is unfortunate because technologies (like Rails or iOS
80.
▲
by
jroesch
12y ago
You unfortunately probably have to deal with exceptions when crossing into Objective-C land because of https://developer.apple.com/library/mac/documentation/cocoa/... .
81.
▲
by
jroesch
12y ago
Just gave this a quick skim but it seems right on point, and clarifies a bunch of the fundamental issues at play when comparing type systems.
82.
▲
by
jroesch
12y ago
None of these things are relevant in most HDLs implemented as DSLs in high level languages. The point of most of the HDL work in Haskell (for example Lava, and Bluespec) is to provide primitives to talk about hardware and to use a sane lang
83.
▲
by
jroesch
13y ago
I think his argument is that these patterns are the easy thing to do in Haskell, not that they are necessarily unique. The Monoid pattern is universal, but most languages don't give you tools to talk about it as an entity. It is harder
84.
▲
by
jroesch
13y ago
Prolog is an interesting exercise and occasionally useful as a tool, but most implementations leave a lot to be desired as a general purpose programming language. An example of this is SWIPL's 3 string types and their crazy behavior.
85.
▲
by
jroesch
13y ago
Cabal sandboxes have fixed a lot of these problems, usually this results from having installed all packages globally, and then cabal tries to find a satisfying version between all global packages and fails. You can also take Ed Kmett's
86.
▲
by
jroesch
13y ago
As a 21 year old this is not ageism in the slightest, it is reality that as you see more and more problems the applicability of some solutions becomes more apparent. For example, when talking to seasoned engineers who have written a lot o
87.
▲
by
jroesch
13y ago
Idris also makes it trivial to annotate laziness, something most languages are lacking, also because it is total by default the evaluation strategy doesn't actually matter for all the total code.
88.
▲
by
jroesch
13y ago
Most programmers use laziness all over the place, they unfortunately have few tools for introducing it, and thus don't recognize it as such. For example in C/C++ your only ability to introduce laziness is via manual thunking, if,
89.
▲
by
jroesch
13y ago
Unfortunately OCaml leaves a lot to be desired after working with Haskell for a significant amount of time. As far as I know GHC's extensions makes the type system much more powerful in non trivial ways. For example things like type fa
90.
▲
by
jroesch
13y ago
Just because they are remembered as being first doesn't mean they were well designed, or actually pioneers. At the same time C was being written others were working on Lisp, and ML. It has taken nearly half a century for some of their
More ›