Show:
Questions
Responses
Print
Speaking of a LISP
Thinking with Functions
Can your Language do This?
History of Functional Programming
Esoteric Fun Facts
100
This popular Lisp dialect is known for targeting the JVM and interacting well with Java code.
Clojure
100
This popular optimization technique allows the compiler to use constant stack space for certain recursive functions.
Tail call optimization
100
This built-in module adds many functional features such as partial application and folds to Python.
functools
100
This functional language feature was recently added to C++ and Java.
Lambda / Anonymous function
100
When C++ was invented, these special character sequences were added to accomodate coders with more limited keyboards.
Trigraphs / Digraphs
200
This form of list interpolation allows one to interpolate code and data.
Quasi-quoting
200
This programming technique uses functions passed as arguments or returned from other functions to make code more generally useful.
Higher-order functions
200
Made popular by Haskell, this mathematical structure encompasses side effects and state into a simple data type.
Monads
200
The first language to implement a garbage collector, this language is also credited with being the first functional programming language.
Lisp
200
This weakly-typed language rather bizarrely yields the empty string upon evaluating the expression [] + [].
Javascript
300
Branched from the Scheme family, this Lisp dialect was built to apply all four major programming paradigms in one language.
Racket
300
Seen in most modern functional languages, This function applies a given function to each element of a list.
map
300
This functional language is renowned for its concurrency abilities and its unique ability to spawn thousands of processes in an average program.
Erlang / Elixir
300
This university was not only home to John McCarthy but was one of the first to use functional programming to develop AI.
MIT
300
When a built-in Perl operator is missing an argument, it frequently defaults to this special variable name.
$_
400
This special data value originated in Lisp and is used today in many languages such as Ruby and Common Lisp to represent emptiness or falsehood.
nil
400
This special syntactic construct in Ruby accomplishes a similar task to lambdas but in a more imperative-friendly way.
Code blocks
400
This concurrency model, used by modern languages like Io and Erlang, offers a cleaner, more problem-free approach to concurrency than threading.
Actor model
400
Known for his work in combinatory logic, this American mathematician has at least three programming languages named after him.
Haskell Curry
400
Aside from the empty string, this string is the only other "falsey" one in PHP.
"0"
500
This datatype, made popular by early Lisps, is capable of supporting arbitrarily large numbers, regardless of the underlying architecture.
Bignum
500
A fork of APL, this rather peculiar language uses hooks, forks, and trains to allow more forms of function composition to be expressed.
J
500
This rather strangely non-transitive Javascript operator was changed in Coffeescript to have more consistent behavior.
==
500
Invented by Alonzo Church, this mathematical system is the basis for modern functional programming languages.
Lambda calculus
500
This string is the result of evaluating the expression [101,109,112,116,121,32,115,116,114,105,110,103] in Erlang.
"empty string"