Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
curryhoward
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
WASM interpreter fits in a QR code
(purplesyringa.moe)
11 points
by
curryhoward
5mo ago
|
1 comments
2.
▲
by
curryhoward
2y ago
You can inspect the styles with browser dev tools. It's IBM Plex Mono.
3.
▲
by
curryhoward
3y ago
Ah, I think your clarification makes a lot more sense than your original phrasing, because Haskell's position is indeed that side effects are bad, not that effects are bad. The bad thing is "side", not "effects"
4.
▲
by
curryhoward
3y ago
The suggestion is to use pure Haskell for the rules DSL only. The surrounding system that applies any side effects would presumably not be written in that language. It's a good idea, and Facebook actually does something like this for t
5.
▲
by
curryhoward
3y ago
Citation needed on "well-established". I find myself often benefiting from Haskell's disciplined approach to effects.
6.
▲
by
curryhoward
3y ago
For one, Rust's "trait" system, which is a foundational part of the language that enables a lot of Rust's expressivity, is a limited imitation of Haskell's "type classes". Rust would be a very different la
7.
▲
by
curryhoward
3y ago
The Y combinator is not the same as λ calculus. The Y combinator is an expression in λ calculus.
8.
▲
by
curryhoward
3y ago
> Even more beautiful than the y combinator That's a bit of a strange statement. The Y combinator is an expression in λ calculus. It's like saying French is even more beautiful than the phrase "nouveau départ".
9.
▲
by
curryhoward
3y ago
> Comic Sans is perfect for setting children’s activity timetables that are displayed in a school playground. It’s perhaps not as appropriate for announcing scientific breakthroughs. Simon Peyton Jones would beg to differ. :)
10.
▲
by
curryhoward
3y ago
> and why they are so absolutely lost when it comes to creating successful languages They aren't lost—they're just more interested in actually good ideas than in popularity. Popular languages must appeal to all kinds of program
11.
▲
by
curryhoward
3y ago
Most of the functional programmers I know have a deeper understanding of OOP than the OOP programmers I know. For example, most of the OOP programmers I know do not understand covariance and contravariance (whereas just about every function
12.
▲
by
curryhoward
3y ago
That's what (4) is for. Time out after some duration.
13.
▲
by
curryhoward
3y ago
> Code has limited CPU available as well - if it tries to use too many cycles it quits with an error That's a pretty strange failure mode. Usually you'd just throttle the sandboxed application (e.g., give it a CFS quota with a
14.
▲
by
curryhoward
4y ago
> the implicit operator in a sequence of two expression without parentheses could be string concatenation rather than function application You can design a language which uses `e1 e2` to represent any binary operation you like, but I
15.
▲
by
curryhoward
4y ago
> Is there a reason why you would make fn(1) and fn 1 equivalent? For the same reason you'd make 1 + 2 the same as 1 + (2). Parentheses can be used to group arbitrary subexpressions.
16.
▲
Exotic List Monads
(hackage.haskell.org)
88 points
by
curryhoward
6y ago
|
25 comments
17.
▲
by
curryhoward
6y ago
Exactly. We should recognize that as the real contribution of Rust: not breaking new ground in what is theoretically possible, but making it practical for the masses.
18.
▲
by
curryhoward
6y ago
> Until about 5 years ago there was no safe, GC-free, practical systems programming language, and furthermore it was unknown how to build such a thing. Now we know. It was known [1], but only by theorists, and theorists aren't the o
19.
▲
by
curryhoward
6y ago
You are correct in that there is a definition of idempotence that agrees with you, but you are wrong to correct the parent comment, because the most common mathematical definition of idempotence of functions agrees with them (and not you).
20.
▲
by
curryhoward
6y ago
> Certain functional programmers corrupted this idea to somehow mean pure functions are free; that these functions can be executed one to infinity times and the result is the same. I think you are conflating two things and attacking a st
21.
▲
by
curryhoward
6y ago
> I think a significant portion of programmers are very smart people who work hard at producing good, generalizable, understandable effective code. To be clear, I don't disagree with this, but it's not relevant. You wouldn'
22.
▲
by
curryhoward
6y ago
> I follow thousands of languages What does this mean?
23.
▲
by
curryhoward
6y ago
Regarding the need for evidence in programming languages research: maybe it's just my bias for theory, but I think of PL research as a branch of mathematics more than an experimental discipline. In mathematics, you don't cite evid
24.
▲
by
curryhoward
6y ago
Google Cloud Run / AWS Fargate. You upload a Docker image and you instantly have a service with auto-scaling, load balancing, HTTPS, etc. It works with any programming language thanks to Docker.
25.
▲
by
curryhoward
6y ago
Small plug: consider using Toast [1] to define your CI jobs. It's essentially Make + Docker. You define whatever targets you want (build, test, lint, etc.) and the dependencies between them in a YAML file, and Toast runs them in Docker
26.
▲
by
curryhoward
6y ago
A small plug: Toast ( https://github.com/stepchowfun/toast ) has already introduced a patch for this vulnerability (CVE-2020-15228), so arbitrary user code running inside Toast will not be able to trigger this vulnerabil
27.
▲
by
curryhoward
6y ago
One important difference between algebraic effects and resumable exceptions is that with algebraic effects, the handler gets access to a reified version of the current continuation. The handler can then use that continuation to resume an ar
28.
▲
by
curryhoward
6y ago
I like to think there is a nice pun here, that functional programming is "timeless" in two simultaneous ways: (1) As mentioned in the article, values are immutable and side effects are reified so you do not have to reason about ti
29.
▲
by
curryhoward
6y ago
> it has canonicity, which I'd argue is necessary for a general-purpose programming language MLTT, even without HoTT/CTT, already features canonicity, no? (At least for positive types.) I thought the main advantage of HoTT is t
30.
▲
Tagref: refer to other parts of your codebase in a robust way
(github.com)
3 points
by
curryhoward
6y ago
|
0 comments
More ›