#Datatypes
##Functions
When call a function with only some of its arguments, you get back a partially-applied function that only expects the remainding arguments: const add1 = R.add(1) // function add1(){...
Any Ramda function, or function created with R.curry
, can be called with R.__
as a placeholder argument. This returns a function which has the other supplied arguments partially-applied
Ramda functions never mutate their inputs. [ Functions that only retreive data return references, whereas functions that change data, return altered copies. <-- is this always true?]
##Lists
In Ramda, Lists are Array
s, DOMNodeList
s, Arguments
lists, and Strings: anything that has a .length
property with a numeric value, and numeric properties that correspond to that .length
.
##Fantasy-land Algebraic Datatypes https://github.com/fantasyland/fantasy-land A number of Ramda functions support objects that implement Fantasy-land interfaces.
map
Functorfilter
Filterableap
Applicativelift
,liftN
Applysequence
Traversable, Applicativetraverse
Traversable, Applicative
The documentation examples sometimes use the Just
and Nothing
Applicatives; an implementation of these can be found in the ramda-fantasy library.
#Other Concepts
##Transducers
##Lenses
I think the description of
Lists
is of the implementation, not the intent. The intent is to approximate something like a list ofcons
-ed pairs. The simplest way to do this is JS is to use an Array. But that is just an unfortunate fact forced upon us by the language.