6.4.1 使用 map 函式
我們將使用f# 庫中的兩個操作,因此,首先要看一下如何使用;然後,討論如何實現,以及如何在 c# 中使用。我們已經知道,了解 f# 中函式的功能,最好的方法通常是理解型別簽名。現在,我們就看一下 option.map 的型別簽名:
> option.map;;
val it : (('a -> 'b) -> 'a option-> 'b option) = (...)
對映(map)操作通常把給定函式應用到由資料型別所包含的值,以相同的結構包裝結果。對於選項(option)型別,當值是 some 時,給定的函式作為第乙個引數值('a –> 'b),將應用到由第二個引數值('a option)所包含的值;型別 'b 的結果將包裝在選項型別內,因此,整體結果的型別是 ' b option;如果原始選項型別不包含值,對映函式將返回 none。
我們可以使用這個函式代替巢狀的匹配。讀取第二個輸入時,我們要「對映」所包含的值到新的值中,並與第乙個數相加:
match (readinput()) with
| none -> none
| some(first) -> readinput() |>option.map (fun second -> first + second)
在第三行,我們已經有了使用者輸入的第乙個數字;接著,使用 readinput() 從控制台讀取第二個選項值,我們使用 option.map,把這個值對映到新的選項值,然後,作為結果返回。lambda 函式作為引數值使用,把第乙個值與選項值所包含的數相加(如果有的話)。
solr 函式使用之map
map 函式是將將乙個字段指定範圍內的值進行對映轉換為目標值 常見的用法有 map x,min,max,target 和map x,min,max,target,other 兩種 例如 map x,0,0,1 在函式引數中的x如果為0時則將其值對映為1,這在處理預設值為0時很有用。map x,10,...
Eigen的map函式使用
經常會處理其他資料結構和eigen的轉換,比如把opencv的mat轉為eigen的matrix,或者std vector的填入matrix。在不進行拷貝的情況下可以使用eigen的map功能進行記憶體對映。不過一定注意對映後的記憶體不要被原結構釋放了 直接上例子 int array 9 eigen...
map函式的使用技巧
js的array陣列物件中有很多有用的方法,js的map函式在某些方面非常的方便強大。map 方法建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果。let numbers 1,5,10,15 let roots numbers.map x let roots numbers...