

Declarative JavaScript With Functional Programming Tools - combataircraft
https://github.com/azer/declarative-js

======
shib71
You need to explain more - for example what do you mean by a "partial"? A
quick search for "partial functions" gave me several links to mathematics
articles. When I followed the links to the composition modules I got more of
the same impenetrable context-less style.

What I did get from the article is something that works a lot like promises:

\- async functions return type of "eventual" data (in your case, a function
you pass a callback to)

\- various other functions that can operate on that eventual data type to
return more eventual data

What does this style offer that standard promises doesn't?

~~~
chc
> _You need to explain more - for example what do you mean by a "partial"? A
> quick search for "partial functions" gave me several links to mathematics
> articles._

The magic phrase you were looking for is "partial application." (Partial
functions are a different, even more esoteric thing.) Basically, partially
applying a function means you create a new function that calls the original
with some of the arguments already filled in. For example, you could write
this:

    
    
      var getUserList = partiallyApply(jQuery.getJSON, 'http://example.com/user-list');
    

and getUserList would then be a function that takes a callback and calls

    
    
      jQuery.getJSON('http://example.com/user-list', yourCallback)

------
bliker
I think this kind of approach can reduce complexity in JS. Witch is for me by
far the biggest problem. Will give it a try.

------
swah
Is this from you, combataircraft? Always curious about your style because you
always post that EditGrid example :)

~~~
combataircraft
Yeah that's me and <https://twitter.com/4zjs/status/319970549910614016> :)

------
efnx
What about going a little further and writing in a purely functional language
like Elm?

------
ibotty
hi nice work. it's always nice to have functional programming paradigms in
javascript.

is there any (technical or political) reason, why this is or will not be part
of underscorejs?

~~~
combataircraft
underscore isn't async as I know. the libraries I use:

\- comp: <http://github.com/azer/comp>

\- andthen: <http://github.com/azer/andthen>

\- join-params: <http://github.com/azer/join-params>

\- map: <http://github.com/azer/map.js>

\- new-partial: <http://github.com/azer/new-partial>

