Notes on reading: Functional Programming in Scala - Part 1

Part 1introduces functional programming, explains what it is, why you should care, and walks through the basic low-level techniques of FP, including how to organise and structure small functional programs, define functional data structures, and handle errors functionally.  


Chapter 1: What is functional programming

* Pure functions: functions that have noside effects(has no observable effect on the execution of the program other than to compute a result given its inputs)

* Referential transparency and purity: An expression e is referentially transparent if for all programs p, all occurrences of e in p can be replaced by the result of evaluating e, without affecting the observable behavior of p. A function f is pure if the expression f(x) is referentially transparent for all referentially transparent x.

* FP benefits: modularity. 

because it separates the logic of the computation itself from "what to do with the result" and "how to obtain the input";  Input is obtained in exactly one way:via the argument(s) to the function. And the output is simply computed and returned. By keeping each of these concerns separate, the logic of the computations more reusable


Chapter 2: Getting Started

* Modules, objects, namespaces

* Function objects: passing functions to functions

* Anonymous functions

* Polymorphic functions: abstracting over types


Chapter 3: Functional Data Structure

* Trait, class, object, type

* Variance

* Algebraic data type & Pattern matching

* High-order functions

* List & Trees


Chapter 4: Handling errors without exceptions

* Option

* Either: both ordinary value and exceptions


Chapter 5: Strictness and laziness

* Non-strict function: the function may choosenot to evaluate one or more of its arguments. Benefits: 

1)recovering some efficiency 

2)improve modularity by separating the description of an expression from the "howand when" of its evaluation. 

* Lazy list


Chapter 6: Purely functional state

* State

Handle state in a purely functional way:  use a pure function that accepts a state as its argument, and it returns the new state alongside its result 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值