Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
haskman
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
91.
▲
by
haskman
8y ago
I am not familiar with R dplyr. The code snippet I posted doesn't adequately demonstrate it but the DSL is strongly typed with full type inference at every step. So for example, it knows that the type of the table after the "join&
92.
▲
by
haskman
8y ago
Preach! I just started building something like this in Purescript which might interest you - https://github.com/ajnsit/purescript-consequence . It allows writing things like - type PersonRel = Relation (name :: St
93.
▲
by
haskman
8y ago
I referenced my framework further down the thread as well, but repeating it here since you specifically ask for ease-of-use and React. Please try out Concur-JS which is my async-gen based UI framework that is React based, and designed to be
94.
▲
by
haskman
8y ago
You might be interested in a slightly unusual UI framework I wrote that heavily focuses on async generators to define the UI - https://github.com/ajnsit/concur-js . The idea is that a UI "Widget" is a sequence
95.
▲
by
haskman
8y ago
Edit: I changed my response after I took the time to understand what you meant. Concur has a very uniform programming model where you do everything by composing widgets. `elm` is a widget. `render` also is a widget. As such both can perform
96.
▲
by
haskman
8y ago
> Hum... No. Abstractions can hide anything. Sure, I'm not going to argue the meaning of "state". You know what I mean. Hiding internal state is good for abstraction. > Besides, your example get much of its gains by hid
97.
▲
by
haskman
8y ago
It might seem like that, but javascript generator semantics mean that execution pauses at the first yield, and awaits external input before it resumes computation. Also, the framework I described is only partially "hypothetical".
98.
▲
by
haskman
8y ago
Of course you need to understand how the framework works. But that's a fixed cost vs. having to understand a program from scratch everytime when your framework is not clear or powerful enough. Would you also say using "goto"
99.
▲
by
haskman
8y ago
Testing could be much easier for the implicit state version. I've not defined it, but you are assuming things about how the render function or the implicit state behaves. In my hypothetical implicit state framework - A widget is co
100.
▲
by
haskman
8y ago
> I can't say definitively, but you could argue that on a team, a more experienced developer might use more advanced features of a technology, which less experienced developers then have to just deal with. Actually in practice that&
101.
▲
by
haskman
8y ago
> Yeah, it's pretty restrictive for FP people, but I think that's fine. I think it's easier for FP people to deal with that amount of restriction, than it is for the average JS developer to quickly understand how to wield
102.
▲
by
haskman
8y ago
> You can move faster without type checking but a lot of times that just means letting code with silly bugs through that you're going to find @ runtime. Oh yeah absolutely. And also, FP and immutability makes everything much easier
103.
▲
by
haskman
8y ago
I understand what you are saying, but - the whole point of abstractions is to "hide state". For example, what is nicer to write/read? Pseudocode - // Stateful state = {buttonClicked: false} render() {
104.
▲
by
haskman
8y ago
Coming in from the other (Functional Programming) side, Elm can be restrictive (no typeclasses, do notation etc.). But it does walk a fine balance, and I love that there's a popular-ish language that is exploring the ease-of-use design
105.
▲
by
haskman
8y ago
Flux/Redux were inspired by The Elm Architecture. I don't know if there was something similar before Elm popularised this style of building user interfaces. Concur was first written in Haskell, so it's got the Functional Prog
106.
▲
by
haskman
8y ago
Shameless plug - I'm trying to improve upon Elm and React's programming model with my Concur UI framework. Its programming model is a bit unusual, it uses Monads to sequence widgets in time, but it is designed to be extremely simp
107.
▲
by
haskman
8y ago
Interesting! As another point in the design space - I wrote a JS UI library (based on React) that uses async generators for state transitions. https://github.com/ajnsit/concur-js
108.
▲
by
haskman
8y ago
If you want something that's (really) easy to get started with, and yet won't artificially constrain you from using your functional programming tricks as you evolve, I recommend trying out Concur [Haskell version]( https:/&#x
109.
▲
by
haskman
9y ago
S&P Global | Full-Time Onsite | US - New York, Boston, Denver. India - Gurgaon S&P Global is hiring functional programmers at various levels and locations in US and India. We are the Analytics Product Development Team, a relatively
110.
▲
by
haskman
9y ago
S&P Global | Full-Time | US - New York, Boston, Denver. India - Gurgaon S&P Global is hiring functional programmers at various levels and locations in US and India. No Remote. We are the Analytics Product Development Team, a relativ
111.
▲
by
haskman
9y ago
That's strange. Vim and tmux work fine for me on MacOS.
112.
▲
Upterm – A terminal emulator and interactive shell based on Electron
(github.com)
57 points
by
haskman
9y ago
|
122 comments
113.
▲
by
haskman
9y ago
That was amazing! Especially the machinery of the second part where the DNA strand is replicated backwards!
114.
▲
by
haskman
10y ago
Agreed, that was very strange. Right click "Copy video link". Leads me to - https://www.youtube.com/watch?v=Gy5m091fOTU
115.
▲
by
haskman
12y ago
I recently launched http://geohangout.com . The entire backend service is written in Haskell (Yesod).
116.
▲
by
haskman
12y ago
I recently named my android app and website through them. It was quite a straightforward and pleasant experience.