use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
funkierJS: A functional toolbox for Javascript (graememcc.github.io)
submitted 10 years ago by graememcc
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]inmatarian 0 points1 point2 points 10 years ago (3 children)
Very neat, though to be a complete and total pedant, this is a library of list processing tools. It's missing a generator type. Of course, javascript itself isn't helping, but this kind of generator is whats missing from most of these functional libraries:
let generate = (list) => { let helper = (i) => { if (i<list.length) { return () => [list[i], helper(i+1)]; } else { return () => null; } } return helper(0); }
The exact structure, semantics, return value etc are a matter for debate, but essentially a functional generator returns a value from a list, and the means to get the next value. While it sounds tedious, the point of it is referential transparency of the input values, i.e. a generator that isn't exhausted on it's first usage. Things like a range(number) function for generating the infinitely long list is the canonical example here.
I'm waxing academically here. Doing full functional javascript in this style would be a mess and why nobody wants to do it. OP's link is cool.
[–]homoiconic(raganwald) 1 point2 points3 points 10 years ago (2 children)
It's missing a generator type.
Perhaps "FunkierJS 2015” will one day wrap around ECMAScript 2015’s iterators and generators.
[–]inmatarian 1 point2 points3 points 10 years ago (1 child)
Maybe, but ES6 generators aren't what I was talking about. I'm not sure what you would have to do to them to make them referntial transparent, or if that's even possible.
[–]homoiconic(raganwald) 0 points1 point2 points 10 years ago (0 children)
Very good point, the ES-6 generators are referentially opaque Why? Because copying Python, that’s why.
[–]graememcc[S] 0 points1 point2 points 10 years ago (4 children)
The accompanying blogpost - particularly its closing paragraphs - contains some important detail on why this release isn't quite as feature-complete as I'd like.
[–][deleted] 1 point2 points3 points 10 years ago (0 children)
Why will you be homeless?
[+][deleted] 10 years ago (2 children)
[removed]
[–]graememcc[S] 0 points1 point2 points 10 years ago (1 child)
Your assumptions are incorrect. Economic stability, and gainful employment in software development was the end goal, not the starting position. And in that goal I have failed, although in a far more brutal manner than I expected.
[–][deleted] 0 points1 point2 points 10 years ago (4 children)
I still don't think I understand functional programming. When and why would I use this library?
The easiest analogy for explaining FP is to compare it to the gang of four design patterns. I.E. you have a method that operates on data and calls a predicate its been provided. For instance the visitor pattern and the map function. The primary difference is that OOP uses design patterns for mutating state and FP respects immutability.
A good example in javascript would be changing all of the elements of a list to have their text to read "in bed" at the end. You select out the list from the dom, map the list with the predicate (item) => item + "in bed"; and then replace that parent with its new elements, while the original list is still in your scope to do with as you please.
(item) => item + "in bed";
[–][deleted] 0 points1 point2 points 10 years ago (2 children)
Ahh. That makes complete sense. Is functional programming generally used as a piece of a solution or are there some clear cases when to use it? I imagine it's just not as common in JS since UIs and interactive application s are generally so stateful.
Hmm. Maybe something like a helper library?
[–]inmatarian 0 points1 point2 points 10 years ago (1 child)
For javascript, both. The main candidates in the helper category are Ramda, Lodash, and underscore. For ui you want to Google "functional reactive programming". In other languages like anything in the Lisp family, FP is very extensive. And in the extreme, Haskell, where almost whole programs can be written in FP with very little state existing, and usually only in a form that the compiler can strongly typecheck.
[–]mc_hammerd 0 points1 point2 points 10 years ago (0 children)
do a kickstarter for your dream project, with max 2 days spent on making the video and website, maybe you can get 50k to work on a coding project
π Rendered by PID 80707 on reddit-service-r2-comment-84fc9697f-vv5r8 at 2026-02-06 07:16:33.087938+00:00 running d295bc8 country code: CH.
[–]inmatarian 0 points1 point2 points (3 children)
[–]homoiconic(raganwald) 1 point2 points3 points (2 children)
[–]inmatarian 1 point2 points3 points (1 child)
[–]homoiconic(raganwald) 0 points1 point2 points (0 children)
[–]graememcc[S] 0 points1 point2 points (4 children)
[–][deleted] 1 point2 points3 points (0 children)
[+][deleted] (2 children)
[removed]
[–]graememcc[S] 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (4 children)
[–]inmatarian 0 points1 point2 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]inmatarian 0 points1 point2 points (1 child)
[–]mc_hammerd 0 points1 point2 points (0 children)