(在多個SEQ映射)假設我有 val foo : Seq[Double] = ...
val bar : Seq[Double] = ...
,我希望以產生SEQ其中巴茲(ⅰ)= FOO(ⅰ)+巴(i)中。我能想到的辦法之一是 val baz : Seq[Double] = (foo.toList zip bar.toList) map ((f: Double, b : Double) =>
我的影片定義爲搜索樹: data (Ord a) => Stree a = Null | Fork (Stree a) a (Stree a) deriving Show
,我必須定義兩個函數,mapStree: mapStree :: (Ord b, Ord a) => (a -> b) -> Stree a -> Stree b
和foldStree: foldStree :: (Or
我剛將原型組元升級到記錄。有一天它可能會成爲一個真正的階級。在此期間,我想這樣的轉換代碼: type Example = int * int
let examples = [(1,2); (3,4); (5,6)]
let descs = Seq.map (fst >> sprintf "%d") examples
這樣: type Example = {
Field1 : in
的想法是多個維度走過去,每一個定義爲範圍 (* lower_bound, upper_bound, number_of_steps *)
type range = real * real * int
所以像fun foo y x或fun foo z y x功能可以應用到整個正方形X Y或立方體X Y * Z. SML/NJ不喜歡我下面的實現: test2.sml:7.5-22.6 Error
正如你可能知道,有OCaml中高階函數,如fold_left,fold_right,過濾等 在我的函數式編程過程中已經引入的功能命名fold_tree,這是一樣的東西fold_left /對,不在列表上,但在(二進制)樹上。它看起來像這樣: let rec fold_tree f a t =
match t with
Leaf -> a |
Node (l, x, r