Functional Programming Principles: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Line 21: Line 21:
   CBV termination → CBN termination
   CBV termination → CBN termination
   but
   but
   CBN termination ↛ CBV termination
   CBN termination ↛ CBV termination


==== Conditionals and Value Definitions ====
==== Conditionals and Value Definitions ====

Revision as of 15:04, 15 September 2014

Video Lectors

Getting Started

Tutorial: Working on Assignments

Using Eclipse and SBT

Working from scala repl

InelliJ IDEA

Week 1: Functions & Evaluations

Programming Paradigms

Programming languages are tightly coupled with the Von Neumann architecture. Functional programming is a way to decouple this dependency. It's also good for scalable computing.

Elements of Programming

SBT: scala build tool

call-by-name vs call-by-value. CBV evaluates all values first, CBN does substitution first.

Evaluation Strategies and Termination

 CBV termination → CBN termination
 but
 CBN termination ↛ CBV termination

Conditionals and Value Definitions

Example: Square roots with Newton's Method

Blocks and Lexical Scope

Tail Recursion

Footer