-
Idea: ``` object HelloWorld { def hello(name:String) = { s"Hello, ${name}" } def add(x:Int,y:Int) = x+y def main(args: Array[String]) { println(hello("lizhy")) println(add(1,2)) } } ```查看全部
-
三種變量修飾符 - val 定義 immutable variable(常量) - var 定義 mutable variable(變量) - lazy val (定義惰性求值的常量) _*可以不顯示指定變量的類型,因?yàn)镾cala會自動進(jìn)行類型推導(dǎo)_ --- String - 構(gòu)建于Java的String之上 - 新增了字符串插值(interpolation)的特性 ```scala val myname = "lizhy" \\ creating a String s"My name is ${myname}" \\ String interpolation ``` 在scala語言中,所有的事物都是對象查看全部
-
- JDK 1.8 - Scala 2.12.2 - IntelliJ IDEA with Scala plugin --- SBT——Simple Build Tool(http://www.scala-sbt.org/) REPL——Read Evaluate Print Loop查看全部
-
### 函數(shù)式編程:只用純函數(shù)來編寫程序 > [函數(shù)式編程(英語:functional programming)或稱函數(shù)程序設(shè)計,又稱泛函編程,是一種編程范型,它將電腦運(yùn)算視為數(shù)學(xué)上的函數(shù)計算,并且避免使用程序狀態(tài)以及易變對象。函數(shù)編程語言最重要的基礎(chǔ)是λ演算(lambda calculus)。而且λ演算的函數(shù)可以接受函數(shù)當(dāng)作輸入(引數(shù))和輸出(傳出值)。][https://zh.wikipedia.org/wiki/%E5%87%BD%E6%95%B8%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80] ### 函數(shù)式編程的重要概念 - 純函數(shù)(Pure Function),或函數(shù)的純粹性(Purity) 沒用副作用(Side Effect),副作用是狀態(tài)的變化(mutation) - 修改全局變量 - 拋出異常 - IO讀寫 - 調(diào)用有副作用的函數(shù) - 引用透明(Referential Transparency),對于相同的輸入,總是得到相同的輸出 如果f(x)的參數(shù)x和函數(shù)體都是引用透明的,那么函數(shù)f是純函數(shù) - 不變性(Immutability),為了獲得引用透明性,任何值都不能變化 - 函數(shù)是一等公民(First-class Function) 一切都是計算,函數(shù)式編程中只有表達(dá)式,變量、函數(shù)都是表達(dá)式 - 高階函數(shù)(Higher order Function) - 閉包(Closure) - 表達(dá)式求值策略:嚴(yán)格求值 和 非嚴(yán)格求值 Call By Value vs. Call By Name - 惰性求值(Lazy Evaluation) - 遞歸函數(shù)(Recursive Function) 遞歸實(shí)現(xiàn)循環(huán) - 尾遞歸(Tail Recursion) ### 函數(shù)式編程的優(yōu)點(diǎn) 1. 生產(chǎn)效率高:同樣功能的程序,Lisp代碼長度可能是C代碼的 $1/7$ ~ $1/10$ 2. 易于推理 3. 并行編程 4. 多核計算、云計算 ### 函數(shù)式編程的崛起 - 摩爾定律失效 - 多核處理器(單核時代邁向多核時代) - 云計算時代查看全部
-
1. Scala - Scalable 編程語言 - 純正的面向?qū)ο笳Z言 - 函數(shù)式語言 - 無縫的Java互操作 2. 課程介紹 - 函數(shù)式編程思想 - scala開發(fā)環(huán)境 - scala語言基礎(chǔ) - 類型和求值策略 - 高階函數(shù) - scala Immutable Collection查看全部
-
變量 三中變量修飾符 val 定義常量 var 定義變量 lazy val 定義惰性常量 *可以不顯示指定變量的烈性,因?yàn)閟cala會自動進(jìn)行類型推導(dǎo)查看全部
-
http://scala-ide.org查看全部
-
http://www.scala-sbt.org/查看全部
-
http://www.scala-lang.org/download/查看全部
-
http://www.oracle.com/technetwork/java/javase/downloads/index.html查看全部
-
柯里化定義查看全部
-
求值策略示例查看全部
-
求值策略劃分查看全部
-
函數(shù)式編程: 用純函數(shù)編寫程序; 函數(shù)式編程的重要概念:純函數(shù)(Pure Function),或函數(shù)的純粹性(Purity),沒有副作用(Side Effect)。 副作用是狀態(tài)的變化(mutation):例子:修改全局變量,拋出異常,IO讀寫,調(diào)用有副作用的函數(shù)。 引用透明(Referential Transparency):對于相同的輸入,總是得到相同的輸出。 如果f(x)的參數(shù)x和函數(shù)體都是引用透明的,那么函數(shù)f是純函數(shù)。 不變性(Immutability)為了獲得引用透明性,任何值都不能變化。 函數(shù)是一等公民(First-class Function):一切都是計算,函數(shù)式編程中只有表達(dá)式,變量、函數(shù)都是表達(dá)式。 高階函數(shù)(Higher order Function) 閉包(Closure) 表達(dá)式求值策略:嚴(yán)格求值 和 非嚴(yán)格求值 Call By Value vs. Call By Name 惰性求值(Lazy Evaluation):定義表達(dá)式不會立即求值,用到后才會求值。 遞歸函數(shù),函數(shù)式編程沒有循環(huán),循環(huán)由遞歸實(shí)現(xiàn)。調(diào)優(yōu)遞歸:尾遞歸。查看全部
-
nothing 是異常查看全部
舉報
0/150
提交
取消