Live data from Hacker News

Generate semi-dynamic UIs with Haskell

github.com

11–16 of 16 posts

Re: Generate semi-dynamic UIs with Haskell

#11

Earlier quoted context omitted.

It's not clear to me what you're trying to show? Are you saying the later examples look more complex?

Of course they do. Of course they are. The simplest code change turns the code in to a monadic/functor soup.

... and if you program in Haskell that's exactly what you want. Programming with these abstractions is common and well supported in Haskell.

Re: Generate semi-dynamic UIs with Haskell

#12

Earlier quoted context omitted.

It's not clear to me what you're trying to show? Are you saying the later examples look more complex?

Of course they do. Of course they are. The simplest code change turns the code in to a monadic/functor soup.

Given what the examples are doing (describing inputs) I don't see how you solve it ergonomically without higher kinded types, which in turn leads to functors etc.

Re: Generate semi-dynamic UIs with Haskell

#13
post #3

I simply love it how every single Haskell framework I've seen that has "ease of development" and "it's easy" and similar immediately devolves from this (from Concur's docs [1]): hello = do button [onClick] [text "Say Hello"] text "Hello Sailor!" into this: inputWidget = input [(Changed onChange, Focused or this: inputWidget st = input [st {focusCount = st.focusCount+1} st {currentText = s}) onChange] for even the sli…

The second example can be rewritten as such:

    inputWidget = let
        changeAction = do
          v 
and likewise for the third:

    inputWidget st = let
        focusAction = do
          _ 
(I didn't compile this, so hopefully there's no major mistakes here)

Believe it or not, many Haskell programmers prefer brevity when it comes to programs like this. They're honestly not that unreadable once you learn the meaning of a few infix operators.

Re: Generate semi-dynamic UIs with Haskell

#14
post #3

I simply love it how every single Haskell framework I've seen that has "ease of development" and "it's easy" and similar immediately devolves from this (from Concur's docs [1]): hello = do button [onClick] [text "Say Hello"] text "Hello Sailor!" into this: inputWidget = input [(Changed onChange, Focused or this: inputWidget st = input [st {focusCount = st.focusCount+1} st {currentText = s}) onChange] for even the sli…

I love it too, because it is a standard and flexible way to program in Haskell!

Re: Generate semi-dynamic UIs with Haskell

#15
post #3

I simply love it how every single Haskell framework I've seen that has "ease of development" and "it's easy" and similar immediately devolves from this (from Concur's docs [1]): hello = do button [onClick] [text "Say Hello"] text "Hello Sailor!" into this: inputWidget = input [(Changed onChange, Focused or this: inputWidget st = input [st {focusCount = st.focusCount+1} st {currentText = s}) onChange] for even the sli…

The second example can be rewritten as such: inputWidget = let changeAction = do v and likewise for the third: inputWidget st = let focusAction = do _ (I didn't compile this, so hopefully there's no major mistakes here) Believe it or not, many Haskell programmers prefer brevity when it comes to programs like this. They're honestly not that unreadable once you learn the meaning of a few infix operators.

I prefer the approach described here: http://www.haskellforall.com/2015/09/how-to-make-your-haskel...

Re: Generate semi-dynamic UIs with Haskell

#16
post #3

I simply love it how every single Haskell framework I've seen that has "ease of development" and "it's easy" and similar immediately devolves from this (from Concur's docs [1]): hello = do button [onClick] [text "Say Hello"] text "Hello Sailor!" into this: inputWidget = input [(Changed onChange, Focused or this: inputWidget st = input [st {focusCount = st.focusCount+1} st {currentText = s}) onChange] for even the sli…

The second example can be rewritten as such: inputWidget = let changeAction = do v and likewise for the third: inputWidget st = let focusAction = do _ (I didn't compile this, so hopefully there's no major mistakes here) Believe it or not, many Haskell programmers prefer brevity when it comes to programs like this. They're honestly not that unreadable once you learn the meaning of a few infix operators.

[deleted]
Post reply on HN