Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
tel
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
44 ms
·
421.
▲
by
tel
9y ago
Is it fair to say that your argument here is that "this resource was extremely valuable to me for understanding certain concepts in ways that Haskell-oriented resources in the past have not been"? I think that's a totally fai
422.
▲
by
tel
9y ago
The only way I can think to relate them is (a) FP tends to highlight the importance of value-semantics over all others, (b) non-termination is an effect, (c) FP also, subsequent to a, tends to emphasize control of side effects, (d) in a ter
423.
▲
by
tel
9y ago
That said the deriving mechanisms have been mostly exposed to the end used now in at least a few different ways. Even more importantly, deriving doesn't change the semantics of the language. You could in principle do exactly the same t
424.
▲
by
tel
9y ago
Yeah, and---literally, not to be snarky---times change. FP isn't a technical definition. It's a cultural, family-resemblance definition that's driven by some mixture of fashion and genuine exploration into a niche of ideas in
425.
▲
by
tel
9y ago
There is a whole body of mathematics which takes these things seriously (constructive math, intuitionistic foundations) and it's, if anything, even more heavily formalized. I think the author has some technical points, but his desire f
426.
▲
by
tel
9y ago
It's only a monad if you define it to be. It's also "just" an applicative if you like. The monadic part arises when people actually _use_ bind and then you lose some information that might be nice for optimizations.
427.
▲
by
tel
9y ago
Combinator is a pretty overloaded term, it's difficult to pin down. In practice, something like `never` would be called a combinator, though. Also, in theory a combinator is just an expression of no free variables. S-K-I calculus is th
428.
▲
by
tel
9y ago
They're not, though. They're a formal language for talking about all kinds of parsers. You can implement them as recursive descent if you want. You can also compile them into formal FSAs if you want.
429.
▲
by
tel
9y ago
They're pretty damn efficient and nicely modular if you're okay with not having context sensitivity. Most of the time you're okay with not have context sensitivity, imo. Context sensitivity as I wrote it here is the most powe
430.
▲
by
tel
9y ago
Consider the most basic parsers you might want. For instance, a parser that only succeeds if it matches a string exactly, a parser that matches any single character and always succeeds, a parser that matches nothing and returns some constan
431.
▲
by
tel
9y ago
Except not: x match { case _: List[Int] => 1 case _: List[Char] => 2 case _: String => 3 } This used java's semi-erased class tags and doesn't report a TypeTag constraint in its type. It wil
432.
▲
by
tel
9y ago
Haskell totally erased types and has a mechanism to recover that information as values. Both are way safer and easier to use than Java's versions.
433.
▲
by
tel
9y ago
As party sentiment goes, yes, but as far as policy and control goes there are some significant differences.
434.
▲
by
tel
9y ago
I'd play the 8 point move if I was ahead and it was more solid.
435.
▲
by
tel
9y ago
Then you can go full geometric algebra and base your whole geometry on this latticez
436.
▲
by
tel
9y ago
OCaml, Objective Caml, has a built-in Object system. Objects are immutable which prevents them from carrying identity (though mutation can be opted into to recover this). They're also "just" row-typed records. Classes are a f
437.
▲
by
tel
9y ago
The category-like generalization of the group is the groupoid: all arrows are isomorphisms.
438.
▲
by
tel
9y ago
I don't know Grothendieck's work, but this sounds like "pointless topology" for which I know a pretty good example (I also have Johnstone's book but it's terribly difficult for me to get into). Consider the &qu
439.
▲
by
tel
10y ago
I guess I'll raise my hand by commenting. This stuff is a certain brand of abstract algebra. Abstract algebra is generally of a certain degree of usefulness to a programmer in that there's a similarity in discipline. Moreover, lin
440.
▲
by
tel
10y ago
Different "monad", unfortunately.
441.
▲
by
tel
10y ago
Sorry, on the propositions themselves, yes, but it's hard to internalize equality: the big sticking point between ITT, OTT, HTT, etc.
442.
▲
by
tel
10y ago
Morphism is the standard general term. If you have a collection of objects with the some sort of structure then a morphism maps one of those to another preserving that structure. In CT you usually are dealing with morphisms, but not always
443.
▲
by
tel
10y ago
> it is as impossible to determine whether two lawful sequences are equal as it is to determine whether two lawless sequences are I also think that's enough. I think when you mention that it's easier to build a mechanistic theo
444.
▲
by
tel
10y ago
I think you're right on the money bringing Turing into this. I don't have a real, formal horse in this race, but the way that I have things arranged in my mind is that these are all disagreements on the notion two things in logica
445.
▲
by
tel
10y ago
For those interested in constructive and intuitionistic approaches here Dummett's [0] Elements of Intuitionism is an extremely good read. Intuitionism is a form of a constructive foundation for mathematics which (a) notes that any atte
446.
▲
by
tel
10y ago
This is the Old type art. It's tragic to see such unkind typing.
447.
▲
by
tel
10y ago
Having used the cats library in anger... I think for Clojure it'd probably be better to make a couple specific monads to handle, e.g., either-ing. Talking about monads abstractly really requires type support, I've come to believe.
448.
▲
by
tel
10y ago
On the other hand, what I'm talking about could apply to many different machine models.
449.
▲
by
tel
10y ago
This is sort of what I'm getting at, though. Haskell gives you the language to talk fluently about everything I was writing. If you use it enough it becomes second nature and these kinds of higher order concepts are easy. Monads are ea
450.
▲
by
tel
10y ago
Because these languages lack a way of discussing something at the right "higher order" as Monads. You can implement them, but there's no word for the kind of thing a monad is. There's not even a real word for a type. You
More ›