From 3cab26d8e94e7486513e5ef58170fe563149a7b7 Mon Sep 17 00:00:00 2001 From: Jimmy Byrd Date: Sun, 19 Mar 2023 18:46:33 -0400 Subject: [PATCH] renamed to batchMap --- .../AdaptiveHashMap/AdaptiveHashMap.fs | 12 ++++++------ .../AdaptiveHashMap/AdaptiveHashMap.fsi | 4 ++-- .../AdaptiveValue/AdaptiveValue.fs | 2 +- .../AdaptiveValue/AdaptiveValue.fsi | 2 +- src/Test/FSharp.Data.Adaptive.Tests/AMap.fs | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fs b/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fs index 1400f64..7a55cb3 100644 --- a/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fs +++ b/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fs @@ -756,9 +756,9 @@ module AdaptiveHashMapImplementation = HashMapDelta.ofHashMap changes - /// Reader for batchRecalc operations. + /// Reader for batchMap operations. [] - type BatchRecalculateDirty<'k, 'a, 'b>(input : amap<'k, 'a>, mapping : HashMap<'k,'a> -> HashMap<'k, aval<'b>>) = + type BatchMap<'k, 'a, 'b>(input : amap<'k, 'a>, mapping : HashMap<'k,'a> -> HashMap<'k, aval<'b>>) = inherit AbstractReader>(HashMapDelta.empty) let reader = input.GetReader() @@ -1415,17 +1415,17 @@ module AMap = else create (fun () -> MapAReader(map, mapping)) - /// Adaptively applies the given mapping to all changes and reapplies mapping on dirty outputs - let batchRecalcDirty (mapping: HashMap<'K, 'T1> -> HashMap<'K, aval<'T2>>) (map: amap<'K, 'T1>) = + /// Adaptively applies the given mapping to batches of all changes and reapplies mapping on dirty outputs + let batchMap (mapping: HashMap<'K, 'T1> -> HashMap<'K, aval<'T2>>) (map: amap<'K, 'T1>) = if map.IsConstant then let map = force map |> mapping if map |> HashMap.forall (fun _ v -> v.IsConstant) then constant (fun () -> map |> HashMap.map (fun _ v -> AVal.force v)) else // TODO better impl possible - create (fun () -> BatchRecalculateDirty(ofHashMap map, id)) + create (fun () -> BatchMap(ofHashMap map, id)) else - create (fun () -> BatchRecalculateDirty(map, mapping)) + create (fun () -> BatchMap(map, mapping)) /// Adaptively chooses all elements returned by mapping. diff --git a/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fsi b/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fsi index c2acf8b..b5dc74b 100644 --- a/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fsi +++ b/src/FSharp.Data.Adaptive/AdaptiveHashMap/AdaptiveHashMap.fsi @@ -105,8 +105,8 @@ module AMap = /// Adaptively applies the given mapping function to all elements and returns a new amap containing the results. val mapA : mapping: ('K -> 'V -> aval<'T>) -> map: amap<'K, 'V> -> amap<'K, 'T> - /// Adaptively applies the given mapping to all changes. - val batchRecalcDirty : mapping: (HashMap<'K,'T1> -> HashMap<'K,aval<'T2>>) -> map: amap<'K, 'T1> -> amap<'K, 'T2> + /// Adaptively applies the given mapping to batches of all changes and reapplies mapping on dirty outputs + val batchMap : mapping: (HashMap<'K,'T1> -> HashMap<'K,aval<'T2>>) -> map: amap<'K, 'T1> -> amap<'K, 'T2> /// Adaptively chooses all elements returned by mapping. val chooseA : mapping: ('K -> 'V -> aval>) -> map: amap<'K, 'V> -> amap<'K, 'T> diff --git a/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fs b/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fs index 7b2493e..6ce56e6 100644 --- a/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fs +++ b/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fs @@ -408,7 +408,7 @@ module AVal = /// Additionally fsproj files have dependencies, such as project.assets.json, that can't be determined until loaded with msbuild /// but should be reloaded if those dependent files change. /// - let mapWithAdditionalDependencies (mapping: 'a -> 'b * seq<#IAdaptiveValue>) (value: aval<'a>) : aval<'b> = + let mapWithAdditionalDependencies (mapping: 'a -> 'b * #seq<#IAdaptiveValue>) (value: aval<'a>) : aval<'b> = let mutable lastDeps = HashSet.empty { new AbstractVal<'b>() with diff --git a/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fsi b/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fsi index f78e5c1..0918ebd 100644 --- a/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fsi +++ b/src/FSharp.Data.Adaptive/AdaptiveValue/AdaptiveValue.fsi @@ -116,7 +116,7 @@ module AVal = /// Additionally fsproj files have dependencies, such as project.assets.json, that can't be determined until loaded with msbuild /// but should be reloaded if those dependent files change. /// - val mapWithAdditionalDependencies : mapping :( 'T1 -> 'T2 * seq<#IAdaptiveValue>) -> value: aval<'T1> -> aval<'T2> + val mapWithAdditionalDependencies : mapping :( 'T1 -> 'T2 * #seq<#IAdaptiveValue>) -> value: aval<'T1> -> aval<'T2> /// Returns a new adaptive value that adaptively applies the mapping function to the given /// input and adaptively depends on the resulting adaptive value. diff --git a/src/Test/FSharp.Data.Adaptive.Tests/AMap.fs b/src/Test/FSharp.Data.Adaptive.Tests/AMap.fs index 2cdb401..b22703e 100644 --- a/src/Test/FSharp.Data.Adaptive.Tests/AMap.fs +++ b/src/Test/FSharp.Data.Adaptive.Tests/AMap.fs @@ -651,11 +651,11 @@ module AMap = >> HashMap.map(fun _ v -> AVal.constant v |> AVal.mapWithAdditionalDependencies (id) ) - AMap.batchRecalcDirty mapping map + AMap.batchMap mapping map [] -let ``[AMap] batchRecalcDirty``() = +let ``[AMap] batchMap``() = let file1 = "File1.fs" let file1Cval = cval 1