Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit959b10f

Browse files
Change List.windowed fromint -> 'T list -> 'T[] list
to `int -> 'T list -> 'T list list`
1 parent0676493 commit959b10f

File tree

9 files changed

+42
-57
lines changed

9 files changed

+42
-57
lines changed

‎src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Collections/ListModule2.fs‎

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ type ListWindowedTestInput<'t> =
2121
{
2222
InputList:'t list
2323
WindowSize:int
24-
ExpectedList:'t[] list
24+
ExpectedList:'t list list
2525
Exception:Type option
2626
}
2727

@@ -965,19 +965,19 @@ type ListModule02() =
965965
{
966966
InputList=[1..10]
967967
WindowSize=1
968-
ExpectedList=[for iin1..10doyield[| i|]]
968+
ExpectedList=[for iin1..10doyield[i]]
969969
Exception= None
970970
}|> testWindowed
971971
{
972972
InputList=[1..10]
973973
WindowSize=5
974-
ExpectedList=[for iin1..6doyield[|i; i+1; i+2; i+3; i+4|]]
974+
ExpectedList=[for iin1..6doyield[i; i+1; i+2; i+3; i+4]]
975975
Exception= None
976976
}|> testWindowed
977977
{
978978
InputList=[1..10]
979979
WindowSize=10
980-
ExpectedList=[yield[|1..10|]]
980+
ExpectedList=[yield[1..10]]
981981
Exception= None
982982
}|> testWindowed
983983
{
@@ -989,7 +989,7 @@ type ListModule02() =
989989
{
990990
InputList=["str1";"str2";"str3";"str4"]
991991
WindowSize=2
992-
ExpectedList=[[|"str1";"str2"|];[|"str2";"str3"|];[|"str3";"str4"|]]
992+
ExpectedList=[["str1";"str2"];["str2";"str3"];["str3";"str4"]]
993993
Exception= None
994994
}|> testWindowed
995995
{
@@ -1007,21 +1007,21 @@ type ListModule02() =
10071007

10081008
// expectedLists indexed by arraySize,windowSize
10091009
letexpectedLists= Array2D.zeroCreate66
1010-
expectedLists.[1,1]<-[[|1|]]
1011-
expectedLists.[2,1]<-[[|1|];[|2|]]
1012-
expectedLists.[2,2]<-[[|1;2|]]
1013-
expectedLists.[3,1]<-[[|1|];[|2|];[|3|]]
1014-
expectedLists.[3,2]<-[[|1;2|];[|2;3|]]
1015-
expectedLists.[3,3]<-[[|1;2;3|]]
1016-
expectedLists.[4,1]<-[[|1|];[|2|];[|3|];[|4|]]
1017-
expectedLists.[4,2]<-[[|1;2|];[|2;3|];[|3;4|]]
1018-
expectedLists.[4,3]<-[[|1;2;3|];[|2;3;4|]]
1019-
expectedLists.[4,4]<-[[|1;2;3;4|]]
1020-
expectedLists.[5,1]<-[[|1|];[|2|];[|3|];[|4|];[|5|]]
1021-
expectedLists.[5,2]<-[[|1;2|];[|2;3|];[|3;4|];[|4;5|]]
1022-
expectedLists.[5,3]<-[[|1;2;3|];[|2;3;4|];[|3;4;5|]]
1023-
expectedLists.[5,4]<-[[|1;2;3;4|];[|2;3;4;5|]]
1024-
expectedLists.[5,5]<-[[|1;2;3;4;5|]]
1010+
expectedLists.[1,1]<-[[1]]
1011+
expectedLists.[2,1]<-[[1];[2]]
1012+
expectedLists.[2,2]<-[[1;2]]
1013+
expectedLists.[3,1]<-[[1];[2];[3]]
1014+
expectedLists.[3,2]<-[[1;2];[2;3]]
1015+
expectedLists.[3,3]<-[[1;2;3]]
1016+
expectedLists.[4,1]<-[[1];[2];[3];[4]]
1017+
expectedLists.[4,2]<-[[1;2];[2;3];[3;4]]
1018+
expectedLists.[4,3]<-[[1;2;3];[2;3;4]]
1019+
expectedLists.[4,4]<-[[1;2;3;4]]
1020+
expectedLists.[5,1]<-[[1];[2];[3];[4];[5]]
1021+
expectedLists.[5,2]<-[[1;2];[2;3];[3;4];[4;5]]
1022+
expectedLists.[5,3]<-[[1;2;3];[2;3;4];[3;4;5]]
1023+
expectedLists.[5,4]<-[[1;2;3;4];[2;3;4;5]]
1024+
expectedLists.[5,5]<-[[1;2;3;4;5]]
10251025

10261026
for arraySize=0to5do
10271027
for windowSize=-1to5do

‎src/fsharp/FSharp.Core.Unittests/SurfaceArea.net40.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ Microsoft.FSharp.Collections.ListModule: Int32 FindIndexBack[T](Microsoft.FSharp
289289
Microsoft.FSharp.Collections.ListModule: Int32 FindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
290290
Microsoft.FSharp.Collections.ListModule: Int32 GetHashCode()
291291
Microsoft.FSharp.Collections.ListModule: Int32 Length[T](Microsoft.FSharp.Collections.FSharpList`1[T])
292+
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[T]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
292293
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.Int32,T]] Indexed[T](Microsoft.FSharp.Collections.FSharpList`1[T])
293294
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T,T]] Pairwise[T](Microsoft.FSharp.Collections.FSharpList`1[T])
294295
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T1,T2]] Zip[T1,T2](Microsoft.FSharp.Collections.FSharpList`1[T1], Microsoft.FSharp.Collections.FSharpList`1[T2])
@@ -304,7 +305,6 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
304305
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Collections.FSharpList`1[T])
305306
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] ScanBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Collections.FSharpList`1[T], TState)
306307
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] Scan[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Collections.FSharpList`1[T])
307-
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T[]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
308308
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Append[T](Microsoft.FSharp.Collections.FSharpList`1[T], Microsoft.FSharp.Collections.FSharpList`1[T])
309309
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Concat[T](System.Collections.Generic.IEnumerable`1[Microsoft.FSharp.Collections.FSharpList`1[T]])
310310
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] DistinctBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], Microsoft.FSharp.Collections.FSharpList`1[T])

‎src/fsharp/FSharp.Core.Unittests/SurfaceArea.portable259.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ Microsoft.FSharp.Collections.ListModule: Int32 FindIndexBack[T](Microsoft.FSharp
276276
Microsoft.FSharp.Collections.ListModule: Int32 FindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
277277
Microsoft.FSharp.Collections.ListModule: Int32 GetHashCode()
278278
Microsoft.FSharp.Collections.ListModule: Int32 Length[T](Microsoft.FSharp.Collections.FSharpList`1[T])
279+
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[T]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
279280
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.Int32,T]] Indexed[T](Microsoft.FSharp.Collections.FSharpList`1[T])
280281
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T,T]] Pairwise[T](Microsoft.FSharp.Collections.FSharpList`1[T])
281282
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T1,T2]] Zip[T1,T2](Microsoft.FSharp.Collections.FSharpList`1[T1], Microsoft.FSharp.Collections.FSharpList`1[T2])
@@ -291,7 +292,6 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
291292
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Collections.FSharpList`1[T])
292293
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] ScanBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Collections.FSharpList`1[T], TState)
293294
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] Scan[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Collections.FSharpList`1[T])
294-
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T[]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
295295
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Append[T](Microsoft.FSharp.Collections.FSharpList`1[T], Microsoft.FSharp.Collections.FSharpList`1[T])
296296
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Concat[T](System.Collections.Generic.IEnumerable`1[Microsoft.FSharp.Collections.FSharpList`1[T]])
297297
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] DistinctBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], Microsoft.FSharp.Collections.FSharpList`1[T])

‎src/fsharp/FSharp.Core.Unittests/SurfaceArea.portable47.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,7 @@ Microsoft.FSharp.Collections.ListModule: Int32 FindIndexBack[T](Microsoft.FSharp
273273
Microsoft.FSharp.Collections.ListModule: Int32 FindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
274274
Microsoft.FSharp.Collections.ListModule: Int32 GetHashCode()
275275
Microsoft.FSharp.Collections.ListModule: Int32 Length[T](Microsoft.FSharp.Collections.FSharpList`1[T])
276+
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[T]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
276277
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.Int32,T]] Indexed[T](Microsoft.FSharp.Collections.FSharpList`1[T])
277278
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T,T]] Pairwise[T](Microsoft.FSharp.Collections.FSharpList`1[T])
278279
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T1,T2]] Zip[T1,T2](Microsoft.FSharp.Collections.FSharpList`1[T1], Microsoft.FSharp.Collections.FSharpList`1[T2])
@@ -288,7 +289,6 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
288289
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Collections.FSharpList`1[T])
289290
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] ScanBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Collections.FSharpList`1[T], TState)
290291
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] Scan[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Collections.FSharpList`1[T])
291-
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T[]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
292292
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Append[T](Microsoft.FSharp.Collections.FSharpList`1[T], Microsoft.FSharp.Collections.FSharpList`1[T])
293293
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Concat[T](System.Collections.Generic.IEnumerable`1[Microsoft.FSharp.Collections.FSharpList`1[T]])
294294
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] DistinctBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], Microsoft.FSharp.Collections.FSharpList`1[T])

‎src/fsharp/FSharp.Core.Unittests/SurfaceArea.portable7.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ Microsoft.FSharp.Collections.ListModule: Int32 FindIndexBack[T](Microsoft.FSharp
289289
Microsoft.FSharp.Collections.ListModule: Int32 FindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
290290
Microsoft.FSharp.Collections.ListModule: Int32 GetHashCode()
291291
Microsoft.FSharp.Collections.ListModule: Int32 Length[T](Microsoft.FSharp.Collections.FSharpList`1[T])
292+
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[T]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
292293
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.Int32,T]] Indexed[T](Microsoft.FSharp.Collections.FSharpList`1[T])
293294
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T,T]] Pairwise[T](Microsoft.FSharp.Collections.FSharpList`1[T])
294295
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T1,T2]] Zip[T1,T2](Microsoft.FSharp.Collections.FSharpList`1[T1], Microsoft.FSharp.Collections.FSharpList`1[T2])
@@ -304,7 +305,6 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
304305
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Collections.FSharpList`1[T])
305306
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] ScanBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Collections.FSharpList`1[T], TState)
306307
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] Scan[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Collections.FSharpList`1[T])
307-
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T[]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
308308
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Append[T](Microsoft.FSharp.Collections.FSharpList`1[T], Microsoft.FSharp.Collections.FSharpList`1[T])
309309
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Concat[T](System.Collections.Generic.IEnumerable`1[Microsoft.FSharp.Collections.FSharpList`1[T]])
310310
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] DistinctBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], Microsoft.FSharp.Collections.FSharpList`1[T])

‎src/fsharp/FSharp.Core.Unittests/SurfaceArea.portable78.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ Microsoft.FSharp.Collections.ListModule: Int32 FindIndexBack[T](Microsoft.FSharp
276276
Microsoft.FSharp.Collections.ListModule: Int32 FindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], Microsoft.FSharp.Collections.FSharpList`1[T])
277277
Microsoft.FSharp.Collections.ListModule: Int32 GetHashCode()
278278
Microsoft.FSharp.Collections.ListModule: Int32 Length[T](Microsoft.FSharp.Collections.FSharpList`1[T])
279+
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[Microsoft.FSharp.Collections.FSharpList`1[T]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
279280
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[System.Int32,T]] Indexed[T](Microsoft.FSharp.Collections.FSharpList`1[T])
280281
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T,T]] Pairwise[T](Microsoft.FSharp.Collections.FSharpList`1[T])
281282
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[T1,T2]] Zip[T1,T2](Microsoft.FSharp.Collections.FSharpList`1[T1], Microsoft.FSharp.Collections.FSharpList`1[T2])
@@ -291,7 +292,6 @@ Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList
291292
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TResult] Map[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult], Microsoft.FSharp.Collections.FSharpList`1[T])
292293
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] ScanBack[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpFunc`2[TState,TState]], Microsoft.FSharp.Collections.FSharpList`1[T], TState)
293294
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[TState] Scan[T,TState](Microsoft.FSharp.Core.FSharpFunc`2[TState,Microsoft.FSharp.Core.FSharpFunc`2[T,TState]], TState, Microsoft.FSharp.Collections.FSharpList`1[T])
294-
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T[]] Windowed[T](Int32, Microsoft.FSharp.Collections.FSharpList`1[T])
295295
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Append[T](Microsoft.FSharp.Collections.FSharpList`1[T], Microsoft.FSharp.Collections.FSharpList`1[T])
296296
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] Concat[T](System.Collections.Generic.IEnumerable`1[Microsoft.FSharp.Collections.FSharpList`1[T]])
297297
Microsoft.FSharp.Collections.ListModule: Microsoft.FSharp.Collections.FSharpList`1[T] DistinctBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], Microsoft.FSharp.Collections.FSharpList`1[T])

‎src/fsharp/FSharp.Core/list.fsi‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -851,13 +851,13 @@ namespace Microsoft.FSharp.Collections
851851
val where:predicate:('T->bool)->list:'T list-> 'T list
852852

853853
///<summary>Returns a list of sliding windows containing elements drawn from the input
854-
///list. Each window is returned as a fresharray.</summary>
854+
///list. Each window is returned as a freshlist.</summary>
855855
///<param name="windowSize">The number of elements in each window.</param>
856856
///<param name="list">The input list.</param>
857857
///<returns>The result list.</returns>
858858
///<exception cref="System.ArgumentException">Thrown when windowSize is not positive.</exception>
859859
[<CompiledName("Windowed")>]
860-
val windowed:windowSize:int->list:'T list-> 'T[]list
860+
val windowed:windowSize:int->list:'T list-> 'T list list
861861

862862
///<summary>Combines the two lists into a list of pairs. The two lists must have equal lengths.</summary>
863863
///<param name="list1">The first input list.</param>

‎src/fsharp/FSharp.Core/local.fs‎

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -524,38 +524,23 @@ module internal List =
524524
unzip3ToFreshConsTail res1a res1b res1c t;
525525
res1a,res1b,res1c
526526

527-
let recwindowedToFreshConsTail cons windowSize i l(arr:'T[])=
528-
match lwith
529-
|[]-> setFreshConsTail cons[]
530-
| h::t->
531-
arr.[i]<- h
532-
leti=(i+1)% windowSize
533-
letresult= arrayZeroCreate windowSize: 'T[]
534-
System.Array.Copy(arr, i, result,0, windowSize- i)
535-
System.Array.Copy(arr,0, result, windowSize- i, i)
536-
letcons2= freshConsNoTail result
527+
let recwindowedToFreshConsTail cons windowSize i list=
528+
if i=0then
529+
setFreshConsTail cons[]
530+
else
531+
letcons2= freshConsNoTail<| take windowSize list
537532
setFreshConsTail cons cons2
538-
windowedToFreshConsTail cons2 windowSizei t arr
533+
windowedToFreshConsTail cons2 windowSize(i-1) list.Tail
539534

540-
letwindowed windowSize list=
535+
letwindowed windowSize(list:'T list)=
541536
if windowSize<=0then invalidArg"windowSize"(SR.GetString(SR.inputMustBePositive))
542-
match listwith
543-
|[]->[]
544-
|_->
545-
letarr= arrayZeroCreate windowSize
546-
let recloop i r l=
547-
match lwith
548-
|[]->if r=0&& i= windowSizethen[arr.Clone():?> 'T[]]else[]
549-
| h::t->
550-
arr.[i]<- h
551-
if r=0then
552-
letcons= freshConsNoTail(arr.Clone():?> 'T[])
553-
windowedToFreshConsTail cons windowSize0 t arr
554-
cons
555-
else
556-
loop(i+1)(r-1) t
557-
558-
loop0(windowSize-1) list
537+
letlen= list.Length
538+
if windowSize> lenthen
539+
[]
540+
else
541+
letcons= freshConsNoTail<| take windowSize list
542+
windowedToFreshConsTail cons windowSize(len- windowSize) list.Tail
543+
cons
559544

560545
// optimized mutation-based implementation. This code is only valid in fslib, where mutation of private
561546
// tail cons cells is permitted in carefully written library code.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp