Index
A
- anonymous functions / Anonymous functions
- apply() function / Apply, call, and the this keyword
- arrayOf functor / Arrays and functors
- arrays
- about / Arrays and functors
B
- backbone.js
- about / Introduction
- Bacon.js / Bacon.js
- Bilby.js / Bilby.js
- bind() function / Binding arguments
- bluebird / Promises
C
- C++
- versus JavaScript / JavaScript's object-oriented implementation – using prototypes
- call() function / Apply, call, and the this keyword
- categories
- about / Category theory in a nutshell
- implementing / Implementing categories
- category theory
- about / Category theory, Category theory in a nutshell
- type safety functions, creating / Type safety
- objects / Object identities
- classical mixins
- about / Classical mixins
- Clojure
- about / Introduction
- closure
- Command Line Interface (CLI) / CLI
- compose
- programming with / Programming with compose
- currying
D
- development environment
- Dojo
- about / Introduction
E
- e-commerce website application
- about / The application – an e-commerce website
- imperative methods / Imperative methods
- ease.js
- ECMAScript
- endofunctors
- about / jQuery is a monad
- engines
- environments, JavaScript applications
- browsers / Browsers
- server-side JavaScript / Server-side JavaScript
- Command Line Interface (CLI) / CLI
F
- Fantasy Land / Fantasy Land
- filter() function
- parameters / Array.prototype.filter()
- forEach() function
- parameters / Array.prototype.forEach
- functional inheritance
- about / Functional inheritance
- Strategy Pattern / Functional inheritance, Strategy Pattern
- functional language
- compiling, into JavaScript / Functional languages that compile into JavaScript
- Functional libraries
- Functional libraries, for JavaScript
- about / Functional libraries for JavaScript
- Underscore.js / Underscore.js
- Fantasy Land / Fantasy Land
- Bilby.js / Bilby.js
- Lazy.js / Lazy.js
- Bacon.js / Bacon.js
- FFunctional / Honorable mentions
- wwu.js / Honorable mentions
- sloth.js / Honorable mentions
- stream.js / Honorable mentions
- Lo-Dash.js / Honorable mentions
- Ssugar / Honorable mentions
- from.js / Honorable mentions
- JSLINQ / Honorable mentions
- Boiler.js / Honorable mentions
- FFolktale / Honorable mentions
- jjQuery / Honorable mentions
- functional mixins
- about / Functional mixins
- functional programming
- about / Introduction, Functional programming, Mostly functional programming
- used, in nonfunctional programming / Functional programming in a nonfunctional world
- events, handling / Handling events
- and object-oriented programming, mixing / Mixing functional and object-oriented programming in JavaScript
- functional programming, using object-oriented programming
- functional inheritance / Functional inheritance
- mixins / Mixins
- functional programming language
- JavaScript / Is JavaScript a functional programming language?
- functional programming languages
- about / Functional programming languages
- performing / What makes a language functional?
- characteristics / What makes a language functional?
- advantages / Advantages, Modularity, Mathematically correct
- functional reactive programming
- about / Functional reactive programming
- reactivity / Reactivity
- subscriber, modifying / Putting it all together
- Functional Reactive Programming (FRP) / Functional reactive programming
- function composition
- about / Function composition, Function compositions, revisited
- compose() / Compose
- sequence, using / Sequence – compose in reverse
- compositions, versus chains / Compositions versus chains
- rewriting / Function compositions, revisited
- function constructor
- about / The function constructor
- function declarations
- about / Function declarations
- versus function expressions / Function expressions, Unpredictable behavior
- function expressions
- about / Function expressions
- versus function constructor / The function constructor
- function factories / Function factories
- function manipulation
- about / Function manipulation
- apply() function / Apply, call, and the this keyword
- this keyword / Apply, call, and the this keyword
- call() function / Apply, call, and the this keyword
- bind() function / Binding arguments
- function factories / Function factories
- Functions
- working with / Working with functions
- self-invoking function, using / Self-invoking functions and closures
- closures, using / Self-invoking functions and closures
- higher-order functions / Higher-order functions
- pure functions / Pure functions
- anonymous functions / Anonymous functions
- methods, chaining / Method chains
- recursive function / Recursion
- lazy evaluation / Lazy evaluation
- functors
- about / Functors
- creating / Creating functors
- function compositions / Function compositions, revisited
G
- global scope, variables
- about / Global scope
H
- Haskell
- higher-order functions / Higher-order functions
- homomorphic operations
- about / Category theory in a nutshell
I
- identity function morphism / Arrays and functors
- inheritance
- about / Inheritance
- with Object.create() method / Inheritance in JavaScript and the Object.create() method
J
- JavaScript
- about / Introduction, Is JavaScript a functional programming language?
- recursion / Recursion
- variable scope / Variable scope
- function declarations / Function declarations versus function expressions versus the function constructor
- function expressions / Function declarations versus function expressions versus the function constructor
- function constructor / Function declarations versus function expressions versus the function constructor
- multi-paradigm language / JavaScript – the multi-paradigm language
- object-oriented implementation / JavaScript's object-oriented implementation – using prototypes
- versus C++ / JavaScript's object-oriented implementation – using prototypes
- jQuery
- about / Introduction
- jQuery object
- about / jQuery is a monad
- implementing / jQuery is a monad
- Julia
- about / Introduction
L
- Lazy.js / Lazy.js
- lazy evaluation
- about / Lazy evaluation
- benefits / Lazy evaluation
- lens() function
- writing / Lenses
- lenses
- about / Lenses
- LINQ (Language Integrated Query)
- about / Honorable mentions
- Lisp
- local scope, variables
- about / Local scope
M
- map() function
- parameters / Array.prototype.map()
- maybes
- memoization
- about / Memoization
- reference link / Memoization
- mixins
- about / Mixins
- classical mixins / Classical mixins
- functional mixins / Functional mixins
- monads
- about / Monads
- maybes / Maybes
- promises / Promises
- lenses / Lenses
- jQuery object / jQuery is a monad
- morphisms
- about / Category theory in a nutshell, Type safety
- MVP (model-view-provider) / Using functional libraries with other JavaScript modules
O
- object-oriented implementation, JavaScript
- prototypes, using / JavaScript's object-oriented implementation – using prototypes
- inheritance / Inheritance
- prototype chain / JavaScript's prototype chain
- inheritance, with Object.create() method / Inheritance in JavaScript and the Object.create() method
- object-oriented programming
- and functional programming, mixing / Mixing functional and object-oriented programming in JavaScript
- Object.create() method
- object properties, variables
- about / Object properties
- objects
- about / Type safety
- o g symbol
- about / Category theory in a nutshell
P
- partial application
- about / Partial function application and currying, Partial application
- left arguments, applying / Partial application from the left
- right arguments, applying / Partial application from the right
- polyadic
- about / Function composition
- polymorphic operations
- about / Category theory in a nutshell
- production environment
- promises
- using / Promises
- Promises/A+ implementation / Promises
- prototype chain
- about / JavaScript's prototype chain
- prototypes
- using, for inheritance / JavaScript's object-oriented implementation – using prototypes
- pure functions / Pure functions
- Pyjs / Functional languages that compile into JavaScript
- Python
- about / Introduction
Q
- QuickCheck
- about / Bilby.js
R
- recursion
- about / Recursion
- Y-Combinator / The Y-combinator
- recursive function
- about / Recursion
- Divide and Conquer / Divide and conquer
- reduce() function
- parameters / Array.prototype.reduce()
- Roy / Functional languages that compile into JavaScript
- Ruby
- about / Introduction
S
- ScalaCheck
- about / Bilby.js
- Scheme
- scope resolutions
- about / Scope resolutions
- global scope / Global scope
- local scope / Local scope
- object properties / Object properties
- self-invoking function
- server-side JavaScript
- functional use case / A functional use case in the server-side environment
- Strategy Pattern
- about / Strategy Pattern
T
- tail-call elimination
- about / The Tail-call elimination
- trampolining / Trampolining
- tail recursion
- about / Tail recursion
- tail-call elimination / The Tail-call elimination
- ternary
- about / Function composition
- this keyword / Apply, call, and the this keyword
- thunks
- about / Trampolining
- toolkit, functional programmer
- about / The functional programmer's toolkit
- callbacks, using / Callbacks
- Array.prototype.map() / Array.prototype.map()
- Array.prototype.filter() / Array.prototype.filter()
- Array.prototype.reduce() / Array.prototype.reduce()
- Array.prototype.forEach / Array.prototype.forEach
- Array.prototype.concat / Array.prototype.concat
- Array.prototype.reverse / Array.prototype.reverse
- Array.prototype.sort / Array.prototype.sort
- Array.prototype.every / Array.prototype.every and Array.prototype.some
- Array.prototype.some / Array.prototype.every and Array.prototype.some
- Trampolining
- trampolining
- about / Trampolining
- TypeScript / Functional languages that compile into JavaScript
U
- UHC / Functional languages that compile into JavaScript
- Unary functions
- about / Function composition
- underscore.js
- about / Introduction
- Underscore.js / Underscore.js
V
- variable scope
- about / Variable scope
- scope resolutions / Scope resolutions
- issues / Closures
- features / Gotchas
- variadic
- about / Function composition
Y
- Y-Combinator
- about / The Y-combinator
- memoization / Memoization