SlideShare una empresa de Scribd logo
1 de 36
Ihome In Action 函数式编程简介 Author:Dennis —— IHOME 的今生来世之篇外篇
什么是 FP ,[object Object],[object Object],[object Object],[object Object]
FP 的优点 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
FP 特性 ,[object Object],[object Object]
无副作用 ,[object Object],[object Object],[object Object]
高阶函数 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数例子 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 filter ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 accumulate ,[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 合并 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 合并 ,[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 合并 ,[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 合并 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
高阶函数 合并 ,[object Object]
闭包 - 定义 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
闭包 - 应用举例 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
闭包 - 应用举例 ,[object Object],[object Object],[object Object],[object Object],[object Object]
闭包应用举例 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Currying ,[object Object]
Currying 例子 1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Currying 例子 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Currying 例子 3 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
延时求值 ,[object Object],[object Object],[object Object],[object Object]
特殊的控制结构 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
特殊的控制结构 ,[object Object],[object Object]
无穷级数 ,[object Object],[object Object],[object Object],[object Object]
无穷级数 ,[object Object],[object Object],[object Object]
筛法求素数 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Continuation ,[object Object],[object Object],[object Object],[object Object]
Continuation 例子 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Continuation 在语言中的支持 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Continuation break 语句 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Continuation amb 操作符 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
amb操作符的实现 ,[object Object],[object Object],[object Object]
amb操作符的使用 ,[object Object],[object Object]
模式匹配

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Java 開發者的函數式程式設計
Java 開發者的函數式程式設計Java 開發者的函數式程式設計
Java 開發者的函數式程式設計
 
P127 135 new
P127 135 newP127 135 new
P127 135 new
 
Ch5
Ch5Ch5
Ch5
 
Ppt 120-126
Ppt 120-126Ppt 120-126
Ppt 120-126
 
第三章 栈和队列
第三章 栈和队列第三章 栈和队列
第三章 栈和队列
 
Lambda演算与邱奇编码
Lambda演算与邱奇编码Lambda演算与邱奇编码
Lambda演算与邱奇编码
 
Polar example
Polar examplePolar example
Polar example
 
Taylor example
Taylor exampleTaylor example
Taylor example
 
Ch10 範例
Ch10 範例Ch10 範例
Ch10 範例
 
Ppt 1-50
Ppt 1-50Ppt 1-50
Ppt 1-50
 
Python speed up with numba
Python speed up with numbaPython speed up with numba
Python speed up with numba
 
Ch12 範例
Ch12 範例Ch12 範例
Ch12 範例
 
Ppt 1-25
Ppt 1-25Ppt 1-25
Ppt 1-25
 
Ppt 136-140
Ppt 136-140Ppt 136-140
Ppt 136-140
 
Ppt 26-50
Ppt 26-50Ppt 26-50
Ppt 26-50
 
Ch9 範例
Ch9 範例Ch9 範例
Ch9 範例
 
Appendix A 教學
Appendix A 教學Appendix A 教學
Appendix A 教學
 
Ppt 78-100
Ppt 78-100Ppt 78-100
Ppt 78-100
 
Ch1 教學
Ch1 教學Ch1 教學
Ch1 教學
 
第2章符 号 运 算
第2章符 号 运 算第2章符 号 运 算
第2章符 号 运 算
 

Destacado

AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台dennis zhuang
 
Java多线程常见陷阱
Java多线程常见陷阱Java多线程常见陷阱
Java多线程常见陷阱dennis zhuang
 
Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎dennis zhuang
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战dennis zhuang
 
我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具dennis zhuang
 
Clojure 1.8 Direct-Linking WWH
Clojure 1.8  Direct-Linking  WWHClojure 1.8  Direct-Linking  WWH
Clojure 1.8 Direct-Linking WWHdennis zhuang
 
Java 与 CPU 高速缓存
Java 与 CPU 高速缓存Java 与 CPU 高速缓存
Java 与 CPU 高速缓存dennis zhuang
 

Destacado (18)

AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台AVOSCloud简介——万象移动云平台
AVOSCloud简介——万象移动云平台
 
Java多线程常见陷阱
Java多线程常见陷阱Java多线程常见陷阱
Java多线程常见陷阱
 
点评新架构
点评新架构点评新架构
点评新架构
 
Erlang简介
Erlang简介Erlang简介
Erlang简介
 
Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎Aviator——轻量级表达式执行引擎
Aviator——轻量级表达式执行引擎
 
Avoscloud 2
Avoscloud 2Avoscloud 2
Avoscloud 2
 
CQL 实现
CQL 实现CQL 实现
CQL 实现
 
Clojure的魅力
Clojure的魅力Clojure的魅力
Clojure的魅力
 
Clojure概览
Clojure概览Clojure概览
Clojure概览
 
QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战QCon - 一次 Clojure Web 编程实战
QCon - 一次 Clojure Web 编程实战
 
我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具我在 Mac 上的常用开发工具
我在 Mac 上的常用开发工具
 
Clojure 1.8 Direct-Linking WWH
Clojure 1.8  Direct-Linking  WWHClojure 1.8  Direct-Linking  WWH
Clojure 1.8 Direct-Linking WWH
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
 
Java 与 CPU 高速缓存
Java 与 CPU 高速缓存Java 与 CPU 高速缓存
Java 与 CPU 高速缓存
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Elixir introd
Elixir introdElixir introd
Elixir introd
 
Erlang scheduler
Erlang schedulerErlang scheduler
Erlang scheduler
 
Hystrix 介绍
Hystrix 介绍Hystrix 介绍
Hystrix 介绍
 

Similar a Ihome inaction 篇外篇之fp介绍

lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7Justin Lin
 
Scilab introduction(Scilab 介紹)
Scilab introduction(Scilab 介紹)Scilab introduction(Scilab 介紹)
Scilab introduction(Scilab 介紹)JIANG MING-LI
 
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Justin Lin
 
Bash shell script 教學
Bash shell script 教學Bash shell script 教學
Bash shell script 教學Ming-Sian Lin
 
C程式-函式與巨集
C程式-函式與巨集C程式-函式與巨集
C程式-函式與巨集艾鍗科技
 
Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Derek Lee
 
Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)ChengHui Weng
 
ncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptxncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptxNCU MCL
 
Lua 30+ Programming Skills and 20+ Optimization Tips
Lua 30+ Programming Skills and 20+ Optimization TipsLua 30+ Programming Skills and 20+ Optimization Tips
Lua 30+ Programming Skills and 20+ Optimization TipsHo Kim
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介guestfe33f0e
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介Xin Zheng
 

Similar a Ihome inaction 篇外篇之fp介绍 (20)

Hi Haskell
Hi HaskellHi Haskell
Hi Haskell
 
算法基础报告
算法基础报告算法基础报告
算法基础报告
 
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7lambda/closure – JavaScript、Python、Scala 到 Java SE 7
lambda/closure – JavaScript、Python、Scala 到 Java SE 7
 
Ch5 教學
Ch5 教學Ch5 教學
Ch5 教學
 
functional-scala
functional-scalafunctional-scala
functional-scala
 
Scilab introduction(Scilab 介紹)
Scilab introduction(Scilab 介紹)Scilab introduction(Scilab 介紹)
Scilab introduction(Scilab 介紹)
 
Scala+RDD
Scala+RDDScala+RDD
Scala+RDD
 
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
Java SE 8 的 Lambda 連鎖效應 - 語法、風格與程式庫
 
Bash shell script 教學
Bash shell script 教學Bash shell script 教學
Bash shell script 教學
 
C程式-函式與巨集
C程式-函式與巨集C程式-函式與巨集
C程式-函式與巨集
 
Scala+spark 2nd
Scala+spark 2ndScala+spark 2nd
Scala+spark 2nd
 
Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18Python入門:5大概念初心者必備 2021/11/18
Python入門:5大概念初心者必備 2021/11/18
 
Pythonic
PythonicPythonic
Pythonic
 
Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)Introduction to Basic Haskell Components (In Chinese)
Introduction to Basic Haskell Components (In Chinese)
 
ncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptxncuma_SymPy符號運算套件.pptx
ncuma_SymPy符號運算套件.pptx
 
Lua 30+ Programming Skills and 20+ Optimization Tips
Lua 30+ Programming Skills and 20+ Optimization TipsLua 30+ Programming Skills and 20+ Optimization Tips
Lua 30+ Programming Skills and 20+ Optimization Tips
 
Ch9
Ch9Ch9
Ch9
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介
 
实验一 Mathematica软件简介
实验一   Mathematica软件简介实验一   Mathematica软件简介
实验一 Mathematica软件简介
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 

Ihome inaction 篇外篇之fp介绍

  • 1. Ihome In Action 函数式编程简介 Author:Dennis —— IHOME 的今生来世之篇外篇
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.