XQuery的函式項和高階函式

2021-09-18 08:21:58 字數 750 閱讀 8111

本文摘自xml經典入門(第5版),原書中**有誤,已改正。

1.函式項:

函式項是函式和它的引數的統稱。

例如:可以使用乙個函式項 sqrt#1 來表示math:sqrt()這一開平方根函式。

2.高階函式:

所謂高階的意思就是引數可以是函式。

編寫乙個簡單的函式:

declare function local:double-root($x as xs:double)

as xs:double

;local:double-root(9.0)

結果是6。

如果再次需要編寫乙個local:double-sin($x)或local:double-cos($x)。試想能否通過傳遞要呼叫的函式來代替sqrt()呢。結果如下:        

declare function local:double-it(

$x as xs:double,

$f as function(xs:double) as xs:double

)as xs:double;

local:double-it(9.0, math:sqrt#1)

結果也是6。

現在就可以使用local:double-it()來呼叫任意乙個的函式了。

這種使用函式作為引數的方法允許開發者編寫一些特殊的xquery模組,這些xquery模組可以通過配置接收不同的函式作為引數,從而來改變模組實現的功能。

Python 奇數項的和,偶數項的和

以前是宣告乙個變數 summ 0,然後用迴圈語句 判斷條件再累加 用python中的 內建函式 寫起來就簡單多了 1.reduce 2.lambda python 3.中得手動導包 調reduce 偶數項的和 from functools import reduce even sum reduce ...

Scala高階 匿名函式和高階函式

scala版本 2.10.5 一 函式是第一等公民 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變數。4 把函式儲存在資料結構裡。在scala中,函式就像普通變數一樣,同樣也具有函式的型別。二 函式型別 1 定義 在scala語言中,函式型別的格式為a b,表示乙個接...

高階函式和匿名函式

1.高階函式 高階函式就是把函式當成引數傳遞的函式。例如 def add x,y,f return f x f y print add 4,3,abs 結果是 7 map 函式 map 函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函...