scala函式式程式設計 柯里化 偏函式

2022-08-29 19:48:09 字數 1952 閱讀 8004

函式式:實現了某個特質的物件,有22個function

程式語言的正規化:

命令式:面向過程、物件導向

函式式:hashkey,scala

object objectdemo 

}// val myfun = new sumfunction

// println(myfun.func(22, 11))

val myfun = new myfunction2[int, int, int]

}//println(myfun.func(3, 7))

//testfunction1(fsum);

testfunction2((x, y) => x * y);

}def testfunction1(f : myfunction2[int,int,int]):unit =

def testfunction2(f : function2[int,int,int]):unit =

//方法

def sum(x:int, y:int):int=

//函式-----是乙個lambda表示式,它背後有就乙個函式式介面

val fsum = (x:int, y:int)=> x + y

}trait myfunction2[x, y, z]

class sumfunction extends myfunction2[int, int, int]

}

class currydemo 

def func1(op:function2[int,int,int], a:int, b:int):int = op(a,b)

// println(func1((x,y)=>x*y, 3, 4))

def func3(op:(int, int) => int, a:int, b:int):(int,int)=>int =

val f9 = func3((x,y)=>x*y,4,6)

//println(f.tostring())

//println(f9(4,9))

//呼叫高階函式

val f = func3(add,1,2)

//println(f(6, 9))

//呼叫函式

def add(a:int,b:int) = a + b

//柯里化----------邏輯數學----- 這個世界基本的組成元素就是 a=>a

def plusby1(factor:int) = (x:int) => x + factor

def plusby(factor:int) =

val f1 = plusby(3)

println(f1(5))

val r1 = plusby(3)(5)

println(r1)

// def add2(a:int) = (b:int) => a + b

println(add2(3)(4))

}object currydemo

}

//偏函式 ------- partial function

object partialfunctiondemo2

if(signal.isdefinedat(0) == true)

val compose_signal:partialfunction[int,int] = signal.orelse

println(compose_signal(6))

//println(signal(0))

val new_signal:function[int,int] = signal.compose

println(signal(4))

println(new_signal(4))

}}

def main(args: array[string]): unit = }

scala函式式程式設計 柯里化 偏函式

函式式 實現了某個特質的物件,有22個function 程式語言的正規化 命令式 面向過程 物件導向 函式式 hashkey,scala object objectdemo val myfun new sumfunction println myfun.func 22,11 val myfun ne...

Scala函式式程式設計 Curry柯里化

函式式程式設計的乙個思想 只傳遞給函式一部分引數來呼叫函式,然後返回乙個函式去處理剩下的引數。簡單說curry就是對高階函式 就是一種對過程的抽象 參考map它就是乙個抽象的過程 的降階處理。比如 function arg1,arg2 變成function arg1 arg2 function ar...

Scala 函式柯里化

柯里化指的是將原來接受多個引數的函式變成新的接受乙個引數的函式的過程,新函式的引數接受原來的第二個引數為唯一引數,如果有n個引數,就是把這個函式分解成n個新函式的過程 1 函式程式設計中,接受多個引數的函式都可以轉化為接受單個引數的函式,這個轉化過程就叫柯里化 2 柯里化就是證明了函式只需要乙個引數...