Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
chas
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
15 ms
·
91.
▲
by
chas
11y ago
Yes! This isn't an accident. Erik Meijer, who contributed extensively to the Reactive Framework at Microsoft, has been very vocal about his use of category theory for software design. ( https://www.youtube.com/watch?v=JM
92.
▲
by
chas
11y ago
If you are interested in non-electronic digital computers you might want to check out this previous discussion:( https://news.ycombinator.com/item?id=7824588 ) If you are particularly interested in domino logic and adders, b
93.
▲
by
chas
11y ago
Speaking of things that the Haskell type system lets you make explicit, the isomorphism between streams and functions from the natural numbers means that streams are "representable functors" in the jargon of category theory. [1] K
94.
▲
by
chas
11y ago
What resources are there on the state of the art algorithm-wise for doing that conversion?
95.
▲
by
chas
11y ago
Haskell has been used to build embedded software to great effect. As you move out of the domain of simple sequencing in embedded systems and into hard realtime systems, coordinating tasks correctly becomes very difficult. Being able to trac
96.
▲
by
chas
12y ago
I've used differential equations building a physics-based optimization system for an industrial process. Symbolically solving parts of the system really increased its accuracy and stability.
97.
▲
by
chas
12y ago
I think zzzcpan is suggesting to compile from the new toy language to C and then use a C compiler to get native code. This doesn't preclude only using libraries written in the new language. CHICKEN is a Scheme compiler that takes this
98.
▲
by
chas
12y ago
I feel like the corollary to this is how quickly one could solve the problems in a pet programming language if $100M was on the line. If the compiler doesn't scale well, hire one of the authors for a bit as a consultant. C with Classes
99.
▲
by
chas
12y ago
It sounds like imanaccount247 is from IMVU, they wrote up their experience with Haskell here: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-... It was previously discussed on HN here: https:&#x
100.
▲
by
chas
12y ago
Type theory is a framework for doing logic that predates computers as we know them. If you have used first-order predicate logic before (e.g. ∀x∀y(P(f(x))→¬(P(x)→ Q(f(y),x,z)))), it performs a similar role to type theory and is the same sor
101.
▲
by
chas
12y ago
Agda-mode will translate from symbol names to unicode for you. For example, \\to gets translated to → and \\== goes to ≡. It is very easy to work with after a short learning curve. There is more explanation available on the Agda Wiki. [0] [
102.
▲
by
chas
12y ago
If you want an overview of the ideas behind this sort of research and a quick summary of some results, Greg Wilson gave a great talk on it[0]. I haven't read through the site to see what is there, but software engineering methodology a
103.
▲
by
chas
12y ago
I'm not going to claim it solves concurrency, but Haskell's combination of STM, expressive types, and immutable data by default make it the nicest language I have used for concurrency. (I have heard similar praise of Clojure as we
104.
▲
by
chas
12y ago
Edward Kmett's answer to this[1] question on Quora does a good job of explaining the value of lazy evaluation. [1] http://www.quora.com/Programming-Languages/When-did-you-real...
105.
▲
by
chas
12y ago
Google has publically described their build system here http://google-engtools.blogspot.com/2011/08/build-in-cloud-h... (low fidelity) and here https://www.youtube.com/watch?v=2qv3fcXW1mg (high fi
106.
▲
by
chas
12y ago
Microcontrollers are very useful if you have very tight power constraints because they have much less complexity than application processors and thus require much less power. For instance, the CC2538 uses ~1uA when sleeping whereas the best
107.
▲
by
chas
12y ago
If you are comfortable with it, I think assembling your own openmotes[1] is the cheapest option. The actual parts on there are relatively cheap and hand solderable if you are okay with CFN components. In addition, there are other cheap and
108.
▲
by
chas
12y ago
This is incredible! After hearing about the MIT tinker toy optimal tic-tac-toe machine[1], I built a half-adder out of dominoes[2] around the same time period as that video and hadn't ever heard of anyone else messing with the concept.
109.
▲
by
chas
12y ago
I think the key bit of the title is "Algebra of Programs". This is a piece about being able to calculate programs. In section 12, Backus goes into some detail on how this construction makes algebraic reasoning easier and gives s
110.
▲
by
chas
12y ago
We did have practical functional programming languages 20 years ago. PG has been very vocal about the advantages of using Common Lisp to create Viaweb. Viaweb started the summer of 1995 and meets my bar for practicality. To the best of my k
111.
▲
by
chas
12y ago
This is a few years old and leaves out 6LoWPAN[1], which wasn't yet commercially viable. 6LoWPAN is based on the same 802.15.4 hardware that ZigBee uses, but it has two significant advantages over ZigBee. First, it is TCP/IP that
112.
▲
by
chas
13y ago
You might be interested in Edward Kmett's automatic differentiation[0] package, ad[1]. It is one of my favorite non-trivial blendings of computer science techniques and more traditional mathematics. In specific, it uses Haskell's
113.
▲
by
chas
13y ago
If anyone reading this wants to see what a basic "guess the number"-style game looks like in Haskell, I wrote one with the same basic logic, but a ton of different coding styles as well as java code that implements the same logic.
114.
▲
by
chas
13y ago
You are absolutely right that this isn't particularly novel. It generalizes a pretty wide range of concepts, which makes it hard to talk about accurately without resorting to jargon. Iterators and generators are solutions to the same s
115.
▲
by
chas
13y ago
I'm sorry that my explanation was so alienating to you. It was intended to be practical, but clearly I missed that mark for people without a certain amount of Haskell experience. Is there anything particularly confusing there that you
116.
▲
by
chas
13y ago
Lifting like this is one of the most useful ideas I have taken from Haskell, but I think it's hard to see its utility through the C++. At it's core, lifting allows functions that don't require a computational context to be co
117.
▲
by
chas
13y ago
In my experience, C++ is really a double-edged sword in this regard. At its best, it provides tools for building cost-free abstractions that hide bit-twiddling and assembly hacks while providing an expressive set of building blocks for the
118.
▲
by
chas
13y ago
Exactly. I was trying to avoid any mathematical jargon while describing monoids because they are such general and pervasive structures in programming. Further, being able to construct useful new monoids is crucial for making full use of a f
119.
▲
by
chas
13y ago
I'm happy to see finger trees got mentioned. Finger trees[0] are extremely useful and general data structure that can be used to implement persistent sequences, priority queues, search trees and priority search queues. (Haskell's
120.
▲
by
chas
13y ago
It isn't strictly required, but a background in algebraic topology is really useful for understanding the homotopy bit. That has point-set topology and abstract algebra as pre-reqs. Abstract algebra is a very useful tool for reasoning
More ›