Software Development - Languages

Functional Programming

URL Description
Anonymous Function (lamda abstraction)
CS 61A Lecture 1: Functional Programming I
CS 61A Lecture 2: Functional Programming II
CS 61A Lecture 3: Functions of Functions
CS 61A Lecture 4: High-Order Procedures
Comparison of Programming Paradigms
  • Imperative programming
  • Structured
  • Procedural
  • Functional
  • Declarative programming
  • Event-driven programming
  • Automata-based programming
Erik Meijer: Functional Programming
Essence of Functional Programming - Venkat Subramaniam

Programming in a language is not entirely about the syntax. You have to learn and get used to a different paradigm and the idioms it supports.

Functional Java
Functional Programming

In computer science, functional programming is a programming paradigm, a style of building the structure and elements of computer programs, that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.

Functional Programming - A Step Backward

Functional programming languages will have a place in general application development when we can read their code at a glance

Functional Programming in Swift Slides
Functional Programming with Java 8 - Venkat Subramaniam

With the release of Java 8, the biggest change is going to be in the programmers mind. In addition to the new syntax for lambda expressions and method references, a significant paradigm shift awaits us.

Functional Thinking - Neal Ford
Side Effects

In computer science, a function or expression is said to have a side effect if, in addition to returning a value, it also modifies some state or has an observable interaction with calling functions or the outside world. For example, a function might modify a global variable or static variable, modify one of its arguments, raise an exception, write data to a display or file, read data, or call other side-effecting functions. In the presence of side effects, a program's behavior may depend on history; that is, the order of evaluation matters. Understanding and debugging a function with side effects requires knowledge about the context and its possible histories.

The Dark Side of Lambda Expressions in Java 8
Who's More Functional: Kotlin, Groovy, Scala, or Java? Andrey Breslav - Project Lead of Kotlin at JetBrains since 2010