@grain/stdlib 0.6.6 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +57 -0
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/array.gr +55 -7
- package/array.md +123 -77
- package/bigint.md +30 -30
- package/buffer.gr +20 -53
- package/buffer.md +47 -47
- package/bytes.gr +111 -35
- package/bytes.md +111 -32
- package/char.gr +201 -99
- package/char.md +361 -34
- package/exception.gr +11 -11
- package/exception.md +26 -1
- package/float32.gr +327 -3
- package/float32.md +606 -19
- package/float64.gr +320 -3
- package/float64.md +606 -19
- package/fs.gr +1082 -0
- package/fs.md +630 -0
- package/hash.gr +142 -88
- package/hash.md +102 -14
- package/int16.md +23 -23
- package/int32.gr +25 -4
- package/int32.md +65 -30
- package/int64.gr +26 -1
- package/int64.md +65 -30
- package/int8.md +23 -23
- package/json.gr +366 -51
- package/json.md +418 -2
- package/list.gr +328 -31
- package/list.md +492 -69
- package/map.gr +20 -12
- package/map.md +44 -38
- package/marshal.gr +41 -40
- package/marshal.md +2 -2
- package/number.gr +159 -30
- package/number.md +215 -38
- package/option.md +21 -21
- package/package.json +5 -3
- package/path.gr +48 -0
- package/path.md +103 -12
- package/pervasives.gr +2 -2
- package/pervasives.md +37 -37
- package/priorityqueue.gr +7 -7
- package/priorityqueue.md +19 -19
- package/queue.gr +183 -29
- package/queue.md +296 -40
- package/random.md +6 -6
- package/range.gr +4 -4
- package/range.md +6 -6
- package/rational.md +16 -16
- package/regex.gr +52 -51
- package/regex.md +11 -11
- package/result.md +16 -16
- package/runtime/atof/common.md +39 -39
- package/runtime/atof/decimal.gr +6 -6
- package/runtime/atof/decimal.md +8 -8
- package/runtime/atof/lemire.gr +5 -5
- package/runtime/atof/lemire.md +1 -1
- package/runtime/atof/parse.gr +16 -16
- package/runtime/atof/parse.md +2 -2
- package/runtime/atof/slow.md +1 -1
- package/runtime/atof/table.md +2 -2
- package/runtime/atoi/parse.gr +3 -3
- package/runtime/atoi/parse.md +1 -1
- package/runtime/bigint.gr +15 -47
- package/runtime/bigint.md +54 -60
- package/runtime/compare.gr +2 -2
- package/runtime/compare.md +1 -1
- package/runtime/dataStructures.md +33 -33
- package/runtime/debugPrint.gr +4 -1
- package/runtime/debugPrint.md +9 -9
- package/runtime/equal.gr +99 -77
- package/runtime/equal.md +1 -1
- package/runtime/exception.gr +62 -82
- package/runtime/exception.md +62 -11
- package/runtime/gc.gr +39 -45
- package/runtime/gc.md +4 -4
- package/runtime/malloc.gr +7 -7
- package/runtime/malloc.md +4 -4
- package/runtime/math/kernel/cos.gr +70 -0
- package/runtime/math/kernel/cos.md +14 -0
- package/runtime/math/kernel/sin.gr +65 -0
- package/runtime/math/kernel/sin.md +14 -0
- package/runtime/math/kernel/tan.gr +136 -0
- package/runtime/math/kernel/tan.md +14 -0
- package/runtime/math/rempio2.gr +244 -0
- package/runtime/math/rempio2.md +14 -0
- package/runtime/math/trig.gr +130 -0
- package/runtime/math/trig.md +28 -0
- package/runtime/math/umuldi.gr +26 -0
- package/runtime/math/umuldi.md +14 -0
- package/runtime/numberUtils.gr +29 -29
- package/runtime/numberUtils.md +12 -12
- package/runtime/numbers.gr +373 -381
- package/runtime/numbers.md +79 -73
- package/runtime/string.gr +37 -105
- package/runtime/string.md +3 -9
- package/runtime/unsafe/constants.md +24 -24
- package/runtime/unsafe/conv.md +13 -13
- package/runtime/unsafe/memory.gr +24 -20
- package/runtime/unsafe/memory.md +27 -7
- package/runtime/unsafe/offsets.gr +36 -0
- package/runtime/unsafe/offsets.md +88 -0
- package/runtime/unsafe/panic.gr +28 -0
- package/runtime/unsafe/panic.md +14 -0
- package/runtime/unsafe/tags.md +32 -32
- package/runtime/unsafe/wasmf32.md +28 -28
- package/runtime/unsafe/wasmf64.md +28 -28
- package/runtime/unsafe/wasmi32.md +47 -47
- package/runtime/unsafe/wasmi64.md +50 -50
- package/runtime/utf8.gr +189 -0
- package/runtime/utf8.md +117 -0
- package/runtime/wasi.gr +4 -2
- package/runtime/wasi.md +138 -138
- package/set.gr +18 -11
- package/set.md +42 -36
- package/stack.gr +171 -2
- package/stack.md +297 -15
- package/string.gr +352 -557
- package/string.md +77 -34
- package/uint16.md +22 -22
- package/uint32.gr +25 -4
- package/uint32.md +63 -28
- package/uint64.gr +25 -5
- package/uint64.md +63 -28
- package/uint8.md +22 -22
- package/uri.gr +57 -53
- package/uri.md +11 -12
- package/wasi/file.gr +67 -59
- package/wasi/file.md +39 -39
- package/wasi/process.md +5 -5
- package/wasi/random.md +3 -3
- package/wasi/time.md +4 -4
- package/runtime/utils/printing.gr +0 -60
- package/runtime/utils/printing.md +0 -26
package/array.md
CHANGED
|
@@ -39,7 +39,7 @@ No other changes yet.
|
|
|
39
39
|
</details>
|
|
40
40
|
|
|
41
41
|
```grain
|
|
42
|
-
length
|
|
42
|
+
length: (array: Array<a>) => Number
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Provides the length of the input array.
|
|
@@ -70,7 +70,7 @@ No other changes yet.
|
|
|
70
70
|
</details>
|
|
71
71
|
|
|
72
72
|
```grain
|
|
73
|
-
make
|
|
73
|
+
make: (length: Number, item: a) => Array<a>
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Creates a new array of the specified length with each element being
|
|
@@ -110,7 +110,7 @@ No other changes yet.
|
|
|
110
110
|
</details>
|
|
111
111
|
|
|
112
112
|
```grain
|
|
113
|
-
init
|
|
113
|
+
init: (length: Number, fn: (Number => a)) => Array<a>
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
Creates a new array of the specified length where each element is
|
|
@@ -143,6 +143,53 @@ Examples:
|
|
|
143
143
|
Array.init(5, n => n + 3) == [> 3, 4, 5, 6, 7]
|
|
144
144
|
```
|
|
145
145
|
|
|
146
|
+
### Array.**tryInit**
|
|
147
|
+
|
|
148
|
+
<details disabled>
|
|
149
|
+
<summary tabindex="-1">Added in <code>0.7.0</code></summary>
|
|
150
|
+
No other changes yet.
|
|
151
|
+
</details>
|
|
152
|
+
|
|
153
|
+
```grain
|
|
154
|
+
tryInit:
|
|
155
|
+
(length: Number, fn: (Number => Result<a, b>)) => Result<Array<a>, b>
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Creates a new array where each element is initialized with the `Ok`
|
|
159
|
+
result value of an initializer function. The initializer is called with the
|
|
160
|
+
index of each element, and returns the new array if all calls to the
|
|
161
|
+
initializer succeed or the first error otherwise.
|
|
162
|
+
|
|
163
|
+
Parameters:
|
|
164
|
+
|
|
165
|
+
|param|type|description|
|
|
166
|
+
|-----|----|-----------|
|
|
167
|
+
|`length`|`Number`|The length of the new array|
|
|
168
|
+
|`fn`|`Number => Result<a, b>`|The initializer function to call with each index, where the `Ok` value returned will be used to initialize each element|
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
|
|
172
|
+
|type|description|
|
|
173
|
+
|----|-----------|
|
|
174
|
+
|`Result<Array<a>, b>`|`Ok(array)` if all elements were successfully initialized or `Err(error)` if the initializer function returned an error|
|
|
175
|
+
|
|
176
|
+
Throws:
|
|
177
|
+
|
|
178
|
+
`InvalidArgument(String)`
|
|
179
|
+
|
|
180
|
+
* When `length` is not an integer
|
|
181
|
+
* When `length` is negative
|
|
182
|
+
|
|
183
|
+
Examples:
|
|
184
|
+
|
|
185
|
+
```grain
|
|
186
|
+
Array.tryInit(5, n => Ok(n + 3)) == [> 3, 4, 5, 6, 7]
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
```grain
|
|
190
|
+
Array.tryInit(5, n => if (n == 1) Err("stop") else Ok(n)) == Err("stop")
|
|
191
|
+
```
|
|
192
|
+
|
|
146
193
|
### Array.**get**
|
|
147
194
|
|
|
148
195
|
<details>
|
|
@@ -158,7 +205,7 @@ Array.init(5, n => n + 3) == [> 3, 4, 5, 6, 7]
|
|
|
158
205
|
</details>
|
|
159
206
|
|
|
160
207
|
```grain
|
|
161
|
-
get
|
|
208
|
+
get: (index: Number, array: Array<a>) => a
|
|
162
209
|
```
|
|
163
210
|
|
|
164
211
|
An alias for normal syntactic array access, i.e. `array[n]`.
|
|
@@ -207,7 +254,7 @@ Array.get(1, [> 1, 2, 3, 4, 5]) == 2
|
|
|
207
254
|
</details>
|
|
208
255
|
|
|
209
256
|
```grain
|
|
210
|
-
set
|
|
257
|
+
set: (index: Number, value: a, array: Array<a>) => Void
|
|
211
258
|
```
|
|
212
259
|
|
|
213
260
|
An alias for normal syntactic array set, i.e. `array[n] = value`.
|
|
@@ -246,7 +293,7 @@ No other changes yet.
|
|
|
246
293
|
</details>
|
|
247
294
|
|
|
248
295
|
```grain
|
|
249
|
-
append
|
|
296
|
+
append: (array1: Array<a>, array2: Array<a>) => Array<a>
|
|
250
297
|
```
|
|
251
298
|
|
|
252
299
|
Creates a new array with the elements of the first array followed by
|
|
@@ -285,7 +332,7 @@ No other changes yet.
|
|
|
285
332
|
</details>
|
|
286
333
|
|
|
287
334
|
```grain
|
|
288
|
-
concat
|
|
335
|
+
concat: (arrays: List<Array<a>>) => Array<a>
|
|
289
336
|
```
|
|
290
337
|
|
|
291
338
|
Creates a single array containing the elements of all arrays in the
|
|
@@ -323,7 +370,7 @@ No other changes yet.
|
|
|
323
370
|
</details>
|
|
324
371
|
|
|
325
372
|
```grain
|
|
326
|
-
copy
|
|
373
|
+
copy: (array: Array<a>) => Array<a>
|
|
327
374
|
```
|
|
328
375
|
|
|
329
376
|
Produces a shallow copy of the input array. The new array contains the
|
|
@@ -355,7 +402,7 @@ No other changes yet.
|
|
|
355
402
|
</details>
|
|
356
403
|
|
|
357
404
|
```grain
|
|
358
|
-
cycle
|
|
405
|
+
cycle: (fn: (a => Void), n: Number, array: Array<a>) => Void
|
|
359
406
|
```
|
|
360
407
|
|
|
361
408
|
Iterates an array a given number of times, calling an iterator function on each element.
|
|
@@ -391,7 +438,7 @@ assert str == "abcabc"
|
|
|
391
438
|
</details>
|
|
392
439
|
|
|
393
440
|
```grain
|
|
394
|
-
forEach
|
|
441
|
+
forEach: (fn: (a => Void), array: Array<a>) => Void
|
|
395
442
|
```
|
|
396
443
|
|
|
397
444
|
Iterates an array, calling an iterator function on each element.
|
|
@@ -426,7 +473,7 @@ assert str == "abc"
|
|
|
426
473
|
</details>
|
|
427
474
|
|
|
428
475
|
```grain
|
|
429
|
-
forEachi
|
|
476
|
+
forEachi: (fn: ((a, Number) => Void), array: Array<a>) => Void
|
|
430
477
|
```
|
|
431
478
|
|
|
432
479
|
Iterates an array, calling an iterator function on each element.
|
|
@@ -462,7 +509,7 @@ assert str == "a0b1c2"
|
|
|
462
509
|
</details>
|
|
463
510
|
|
|
464
511
|
```grain
|
|
465
|
-
map
|
|
512
|
+
map: (fn: (a => b), array: Array<a>) => Array<b>
|
|
466
513
|
```
|
|
467
514
|
|
|
468
515
|
Produces a new array initialized with the results of a mapper function
|
|
@@ -495,7 +542,7 @@ No other changes yet.
|
|
|
495
542
|
</details>
|
|
496
543
|
|
|
497
544
|
```grain
|
|
498
|
-
mapi
|
|
545
|
+
mapi: (fn: ((a, Number) => b), array: Array<a>) => Array<b>
|
|
499
546
|
```
|
|
500
547
|
|
|
501
548
|
Produces a new array initialized with the results of a mapper function
|
|
@@ -528,7 +575,7 @@ No other changes yet.
|
|
|
528
575
|
</details>
|
|
529
576
|
|
|
530
577
|
```grain
|
|
531
|
-
reduce
|
|
578
|
+
reduce: (fn: ((a, b) => a), initial: a, array: Array<b>) => a
|
|
532
579
|
```
|
|
533
580
|
|
|
534
581
|
Combines all elements of an array using a reducer function,
|
|
@@ -571,7 +618,7 @@ No other changes yet.
|
|
|
571
618
|
</details>
|
|
572
619
|
|
|
573
620
|
```grain
|
|
574
|
-
reduceRight
|
|
621
|
+
reduceRight: (fn: ((a, b) => b), initial: b, array: Array<a>) => b
|
|
575
622
|
```
|
|
576
623
|
|
|
577
624
|
Combines all elements of an array using a reducer function,
|
|
@@ -610,7 +657,7 @@ No other changes yet.
|
|
|
610
657
|
</details>
|
|
611
658
|
|
|
612
659
|
```grain
|
|
613
|
-
reducei
|
|
660
|
+
reducei: (fn: ((a, b, Number) => a), initial: a, array: Array<b>) => a
|
|
614
661
|
```
|
|
615
662
|
|
|
616
663
|
Combines all elements of an array using a reducer function,
|
|
@@ -657,7 +704,7 @@ No other changes yet.
|
|
|
657
704
|
</details>
|
|
658
705
|
|
|
659
706
|
```grain
|
|
660
|
-
flatMap
|
|
707
|
+
flatMap: (fn: (b => Array<a>), array: Array<b>) => Array<a>
|
|
661
708
|
```
|
|
662
709
|
|
|
663
710
|
Produces a new array by calling a function on each element
|
|
@@ -698,7 +745,7 @@ No other changes yet.
|
|
|
698
745
|
</details>
|
|
699
746
|
|
|
700
747
|
```grain
|
|
701
|
-
every
|
|
748
|
+
every: (fn: (a => Bool), array: Array<a>) => Bool
|
|
702
749
|
```
|
|
703
750
|
|
|
704
751
|
Checks that the given condition is satisfied for all
|
|
@@ -735,7 +782,7 @@ No other changes yet.
|
|
|
735
782
|
</details>
|
|
736
783
|
|
|
737
784
|
```grain
|
|
738
|
-
some
|
|
785
|
+
some: (fn: (a => Bool), array: Array<a>) => Bool
|
|
739
786
|
```
|
|
740
787
|
|
|
741
788
|
Checks that the given condition is satisfied **at least
|
|
@@ -776,7 +823,7 @@ No other changes yet.
|
|
|
776
823
|
</details>
|
|
777
824
|
|
|
778
825
|
```grain
|
|
779
|
-
fill
|
|
826
|
+
fill: (value: a, array: Array<a>) => Void
|
|
780
827
|
```
|
|
781
828
|
|
|
782
829
|
Replaces all elements in an array with the new value provided.
|
|
@@ -804,7 +851,7 @@ No other changes yet.
|
|
|
804
851
|
</details>
|
|
805
852
|
|
|
806
853
|
```grain
|
|
807
|
-
fillRange
|
|
854
|
+
fillRange: (value: a, start: Number, stop: Number, array: Array<a>) => Void
|
|
808
855
|
```
|
|
809
856
|
|
|
810
857
|
Replaces all elements in the provided index range in the array
|
|
@@ -842,7 +889,7 @@ No other changes yet.
|
|
|
842
889
|
</details>
|
|
843
890
|
|
|
844
891
|
```grain
|
|
845
|
-
reverse
|
|
892
|
+
reverse: (array: Array<a>) => Array<a>
|
|
846
893
|
```
|
|
847
894
|
|
|
848
895
|
Creates a new array with all elements in reverse order.
|
|
@@ -873,7 +920,7 @@ No other changes yet.
|
|
|
873
920
|
</details>
|
|
874
921
|
|
|
875
922
|
```grain
|
|
876
|
-
toList
|
|
923
|
+
toList: (array: Array<a>) => List<a>
|
|
877
924
|
```
|
|
878
925
|
|
|
879
926
|
Converts the input array to a list.
|
|
@@ -904,7 +951,7 @@ No other changes yet.
|
|
|
904
951
|
</details>
|
|
905
952
|
|
|
906
953
|
```grain
|
|
907
|
-
fromList
|
|
954
|
+
fromList: (list: List<a>) => Array<a>
|
|
908
955
|
```
|
|
909
956
|
|
|
910
957
|
Converts the input list to an array.
|
|
@@ -935,7 +982,7 @@ No other changes yet.
|
|
|
935
982
|
</details>
|
|
936
983
|
|
|
937
984
|
```grain
|
|
938
|
-
contains
|
|
985
|
+
contains: (search: a, array: Array<a>) => Bool
|
|
939
986
|
```
|
|
940
987
|
|
|
941
988
|
Checks if the value is an element of the input array.
|
|
@@ -972,7 +1019,7 @@ No other changes yet.
|
|
|
972
1019
|
</details>
|
|
973
1020
|
|
|
974
1021
|
```grain
|
|
975
|
-
find
|
|
1022
|
+
find: (fn: (a => Bool), array: Array<a>) => Option<a>
|
|
976
1023
|
```
|
|
977
1024
|
|
|
978
1025
|
Finds the first element in an array that satisfies the given condition.
|
|
@@ -1012,7 +1059,7 @@ No other changes yet.
|
|
|
1012
1059
|
</details>
|
|
1013
1060
|
|
|
1014
1061
|
```grain
|
|
1015
|
-
findIndex
|
|
1062
|
+
findIndex: (fn: (a => Bool), array: Array<a>) => Option<Number>
|
|
1016
1063
|
```
|
|
1017
1064
|
|
|
1018
1065
|
Finds the first index in an array where the element satisfies the given condition.
|
|
@@ -1052,7 +1099,7 @@ No other changes yet.
|
|
|
1052
1099
|
</details>
|
|
1053
1100
|
|
|
1054
1101
|
```grain
|
|
1055
|
-
product
|
|
1102
|
+
product: (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
|
|
1056
1103
|
```
|
|
1057
1104
|
|
|
1058
1105
|
Combines two arrays into a Cartesian product of tuples containing
|
|
@@ -1091,7 +1138,7 @@ No other changes yet.
|
|
|
1091
1138
|
</details>
|
|
1092
1139
|
|
|
1093
1140
|
```grain
|
|
1094
|
-
count
|
|
1141
|
+
count: (fn: (a => Bool), array: Array<a>) => Number
|
|
1095
1142
|
```
|
|
1096
1143
|
|
|
1097
1144
|
Counts the number of elements in an array that satisfy the given condition.
|
|
@@ -1123,7 +1170,7 @@ No other changes yet.
|
|
|
1123
1170
|
</details>
|
|
1124
1171
|
|
|
1125
1172
|
```grain
|
|
1126
|
-
counti
|
|
1173
|
+
counti: (fn: ((a, Number) => Bool), array: Array<a>) => Number
|
|
1127
1174
|
```
|
|
1128
1175
|
|
|
1129
1176
|
Counts the number of elements in an array that satisfy the
|
|
@@ -1160,7 +1207,7 @@ No other changes yet.
|
|
|
1160
1207
|
</details>
|
|
1161
1208
|
|
|
1162
1209
|
```grain
|
|
1163
|
-
filter
|
|
1210
|
+
filter: (fn: (a => Bool), array: Array<a>) => Array<a>
|
|
1164
1211
|
```
|
|
1165
1212
|
|
|
1166
1213
|
Produces a new array by calling a function on each element of
|
|
@@ -1194,7 +1241,7 @@ No other changes yet.
|
|
|
1194
1241
|
</details>
|
|
1195
1242
|
|
|
1196
1243
|
```grain
|
|
1197
|
-
filteri
|
|
1244
|
+
filteri: (fn: ((a, Number) => Bool), array: Array<a>) => Array<a>
|
|
1198
1245
|
```
|
|
1199
1246
|
|
|
1200
1247
|
Produces a new array by calling a function on each element of
|
|
@@ -1232,7 +1279,7 @@ No other changes yet.
|
|
|
1232
1279
|
</details>
|
|
1233
1280
|
|
|
1234
1281
|
```grain
|
|
1235
|
-
unique
|
|
1282
|
+
unique: (array: Array<a>) => Array<a>
|
|
1236
1283
|
```
|
|
1237
1284
|
|
|
1238
1285
|
Produces a new array with any duplicates removed.
|
|
@@ -1271,7 +1318,7 @@ Array.unique([> 1, 2, 1, 2, 3, 1]) == [> 1, 2, 3]
|
|
|
1271
1318
|
</details>
|
|
1272
1319
|
|
|
1273
1320
|
```grain
|
|
1274
|
-
zip
|
|
1321
|
+
zip: (array1: Array<a>, array2: Array<b>) => Array<(a, b)>
|
|
1275
1322
|
```
|
|
1276
1323
|
|
|
1277
1324
|
Produces a new array filled with tuples of elements from both given arrays.
|
|
@@ -1311,7 +1358,7 @@ No other changes yet.
|
|
|
1311
1358
|
</details>
|
|
1312
1359
|
|
|
1313
1360
|
```grain
|
|
1314
|
-
zipWith
|
|
1361
|
+
zipWith: (fn: ((a, b) => c), array1: Array<a>, array2: Array<b>) => Array<c>
|
|
1315
1362
|
```
|
|
1316
1363
|
|
|
1317
1364
|
Produces a new array filled with elements defined by applying a function on
|
|
@@ -1361,7 +1408,7 @@ No other changes yet.
|
|
|
1361
1408
|
</details>
|
|
1362
1409
|
|
|
1363
1410
|
```grain
|
|
1364
|
-
unzip
|
|
1411
|
+
unzip: (array: Array<(a, b)>) => (Array<a>, Array<b>)
|
|
1365
1412
|
```
|
|
1366
1413
|
|
|
1367
1414
|
Produces two arrays by splitting apart an array of tuples.
|
|
@@ -1392,7 +1439,7 @@ No other changes yet.
|
|
|
1392
1439
|
</details>
|
|
1393
1440
|
|
|
1394
1441
|
```grain
|
|
1395
|
-
join
|
|
1442
|
+
join: (separator: String, items: Array<String>) => String
|
|
1396
1443
|
```
|
|
1397
1444
|
|
|
1398
1445
|
Concatenates an array of strings into a single string, separated by a separator string.
|
|
@@ -1431,7 +1478,7 @@ Array.join(", ", [> "a", "b", "c"]) == "a, b, c"
|
|
|
1431
1478
|
</details>
|
|
1432
1479
|
|
|
1433
1480
|
```grain
|
|
1434
|
-
slice
|
|
1481
|
+
slice: (start: Number, ?end: Number, array: Array<a>) => Array<a>
|
|
1435
1482
|
```
|
|
1436
1483
|
|
|
1437
1484
|
Slices an array given zero-based start and end indexes. The value
|
|
@@ -1479,7 +1526,7 @@ Array.slice(1, [> 1, 2, 3, 4]) == [> 2, 3, 4]
|
|
|
1479
1526
|
</details>
|
|
1480
1527
|
|
|
1481
1528
|
```grain
|
|
1482
|
-
sort
|
|
1529
|
+
sort: (?compare: ((num1: a, num2: a) => Number), array: Array<a>) => Void
|
|
1483
1530
|
```
|
|
1484
1531
|
|
|
1485
1532
|
Sorts an array in-place.
|
|
@@ -1516,7 +1563,7 @@ assert arr == [> 1, 2, 3, 4]
|
|
|
1516
1563
|
</details>
|
|
1517
1564
|
|
|
1518
1565
|
```grain
|
|
1519
|
-
rotate
|
|
1566
|
+
rotate: (n: Number, arr: Array<a>) => Void
|
|
1520
1567
|
```
|
|
1521
1568
|
|
|
1522
1569
|
Rotates array elements in place by the specified amount to the left, such
|
|
@@ -1554,7 +1601,7 @@ No other changes yet.
|
|
|
1554
1601
|
</details>
|
|
1555
1602
|
|
|
1556
1603
|
```grain
|
|
1557
|
-
chunk
|
|
1604
|
+
chunk: (chunkSize: Number, arr: Array<a>) => Array<Array<a>>
|
|
1558
1605
|
```
|
|
1559
1606
|
|
|
1560
1607
|
Splits the given array into chunks of the provided size.
|
|
@@ -1647,7 +1694,7 @@ Functions and constants included in the Array.Immutable module.
|
|
|
1647
1694
|
</details>
|
|
1648
1695
|
|
|
1649
1696
|
```grain
|
|
1650
|
-
empty
|
|
1697
|
+
empty: ImmutableArray<a>
|
|
1651
1698
|
```
|
|
1652
1699
|
|
|
1653
1700
|
An empty array.
|
|
@@ -1673,7 +1720,7 @@ Array.Immutable.empty == Array.Immutable.fromList([])
|
|
|
1673
1720
|
</details>
|
|
1674
1721
|
|
|
1675
1722
|
```grain
|
|
1676
|
-
isEmpty
|
|
1723
|
+
isEmpty: (array: ImmutableArray<a>) => Bool
|
|
1677
1724
|
```
|
|
1678
1725
|
|
|
1679
1726
|
Determines if the array contains no elements.
|
|
@@ -1717,7 +1764,7 @@ assert Immutable.isEmpty(Immutable.fromList([])) == true
|
|
|
1717
1764
|
</details>
|
|
1718
1765
|
|
|
1719
1766
|
```grain
|
|
1720
|
-
length
|
|
1767
|
+
length: (array: ImmutableArray<a>) => Number
|
|
1721
1768
|
```
|
|
1722
1769
|
|
|
1723
1770
|
Provides the length of the input array.
|
|
@@ -1756,7 +1803,7 @@ assert Immutable.length(Immutable.fromList([1, 2, 3, 4, 5])) == 5
|
|
|
1756
1803
|
</details>
|
|
1757
1804
|
|
|
1758
1805
|
```grain
|
|
1759
|
-
get
|
|
1806
|
+
get: (index: Number, array: ImmutableArray<a>) => a
|
|
1760
1807
|
```
|
|
1761
1808
|
|
|
1762
1809
|
Retrieves the element from the array at the specified index.
|
|
@@ -1808,8 +1855,7 @@ assert Immutable.get(-1, Immutable.fromList([1, 2, 3, 4])) == 4
|
|
|
1808
1855
|
</details>
|
|
1809
1856
|
|
|
1810
1857
|
```grain
|
|
1811
|
-
set :
|
|
1812
|
-
(index: Number, value: a, array: ImmutableArray<a>) => ImmutableArray<a>
|
|
1858
|
+
set: (index: Number, value: a, array: ImmutableArray<a>) => ImmutableArray<a>
|
|
1813
1859
|
```
|
|
1814
1860
|
|
|
1815
1861
|
Creates a new array in which the element at the specified index is set to a
|
|
@@ -1860,7 +1906,7 @@ assert array == Immutable.fromList([1, 9, 3, 4, 5])
|
|
|
1860
1906
|
</details>
|
|
1861
1907
|
|
|
1862
1908
|
```grain
|
|
1863
|
-
append
|
|
1909
|
+
append:
|
|
1864
1910
|
(array1: ImmutableArray<a>, array2: ImmutableArray<a>) => ImmutableArray<a>
|
|
1865
1911
|
```
|
|
1866
1912
|
|
|
@@ -1906,7 +1952,7 @@ assert arr2 == Immutable.fromList([3, 4, 5])
|
|
|
1906
1952
|
</details>
|
|
1907
1953
|
|
|
1908
1954
|
```grain
|
|
1909
|
-
concat
|
|
1955
|
+
concat: (arrays: List<ImmutableArray<a>>) => ImmutableArray<a>
|
|
1910
1956
|
```
|
|
1911
1957
|
|
|
1912
1958
|
Creates a single array containing the elements of all arrays in the
|
|
@@ -1949,7 +1995,7 @@ assert Immutable.concat([arr1, arr2, arr3]) == Immutable.fromList([1, 2, 3, 4, 5
|
|
|
1949
1995
|
</details>
|
|
1950
1996
|
|
|
1951
1997
|
```grain
|
|
1952
|
-
init
|
|
1998
|
+
init: (length: Number, fn: (Number => a)) => ImmutableArray<a>
|
|
1953
1999
|
```
|
|
1954
2000
|
|
|
1955
2001
|
Creates a new array of the specified length where each element is
|
|
@@ -1996,7 +2042,7 @@ assert Immutable.init(5, i => i + 3) == Immutable.fromList([3, 4, 5, 6, 7])
|
|
|
1996
2042
|
</details>
|
|
1997
2043
|
|
|
1998
2044
|
```grain
|
|
1999
|
-
make
|
|
2045
|
+
make: (length: Number, value: a) => ImmutableArray<a>
|
|
2000
2046
|
```
|
|
2001
2047
|
|
|
2002
2048
|
Creates a new array of the specified length with each element being
|
|
@@ -2037,7 +2083,7 @@ assert Immutable.make(5, "🌾") == Immutable.fromList(["🌾", "🌾", "🌾",
|
|
|
2037
2083
|
</details>
|
|
2038
2084
|
|
|
2039
2085
|
```grain
|
|
2040
|
-
forEach
|
|
2086
|
+
forEach: (fn: (a => Void), array: ImmutableArray<a>) => Void
|
|
2041
2087
|
```
|
|
2042
2088
|
|
|
2043
2089
|
Iterates an array, calling an iterator function on each element.
|
|
@@ -2074,7 +2120,7 @@ assert str == "foobarbaz"
|
|
|
2074
2120
|
</details>
|
|
2075
2121
|
|
|
2076
2122
|
```grain
|
|
2077
|
-
cycle
|
|
2123
|
+
cycle: (fn: (a => Void), n: Number, array: ImmutableArray<a>) => Void
|
|
2078
2124
|
```
|
|
2079
2125
|
|
|
2080
2126
|
Iterates an array a given number of times, calling an iterator function on each element.
|
|
@@ -2112,7 +2158,7 @@ assert str == "abcabc"
|
|
|
2112
2158
|
</details>
|
|
2113
2159
|
|
|
2114
2160
|
```grain
|
|
2115
|
-
map
|
|
2161
|
+
map: (fn: (a => b), array: ImmutableArray<a>) => ImmutableArray<b>
|
|
2116
2162
|
```
|
|
2117
2163
|
|
|
2118
2164
|
Produces a new array initialized with the results of a mapper function
|
|
@@ -2155,7 +2201,7 @@ assert arr == Immutable.fromList(["foo_", "bar_", "baz_"])
|
|
|
2155
2201
|
</details>
|
|
2156
2202
|
|
|
2157
2203
|
```grain
|
|
2158
|
-
reduce
|
|
2204
|
+
reduce: (fn: ((a, b) => a), initial: a, array: ImmutableArray<b>) => a
|
|
2159
2205
|
```
|
|
2160
2206
|
|
|
2161
2207
|
Combines all elements of an array using a reducer function,
|
|
@@ -2203,7 +2249,7 @@ assert Immutable.reduce((acc, x) => acc + x, 0, arr) == 6
|
|
|
2203
2249
|
</details>
|
|
2204
2250
|
|
|
2205
2251
|
```grain
|
|
2206
|
-
reduceRight
|
|
2252
|
+
reduceRight: (fn: ((a, b) => b), initial: b, array: ImmutableArray<a>) => b
|
|
2207
2253
|
```
|
|
2208
2254
|
|
|
2209
2255
|
Combines all elements of an array using a reducer function,
|
|
@@ -2251,7 +2297,7 @@ assert Immutable.reduceRight((x, acc) => acc ++ x, "", arr) == "foobarbaz"
|
|
|
2251
2297
|
</details>
|
|
2252
2298
|
|
|
2253
2299
|
```grain
|
|
2254
|
-
flatMap
|
|
2300
|
+
flatMap:
|
|
2255
2301
|
(fn: (a => ImmutableArray<b>), array: ImmutableArray<a>) =>
|
|
2256
2302
|
ImmutableArray<b>
|
|
2257
2303
|
```
|
|
@@ -2298,7 +2344,7 @@ assert arr == Immutable.fromList([1, 2, 3, 4, 5, 6])
|
|
|
2298
2344
|
</details>
|
|
2299
2345
|
|
|
2300
2346
|
```grain
|
|
2301
|
-
fromList
|
|
2347
|
+
fromList: (list: List<a>) => ImmutableArray<a>
|
|
2302
2348
|
```
|
|
2303
2349
|
|
|
2304
2350
|
Converts the input list to an array.
|
|
@@ -2338,7 +2384,7 @@ assert Immutable.get(1, arr) == 2
|
|
|
2338
2384
|
</details>
|
|
2339
2385
|
|
|
2340
2386
|
```grain
|
|
2341
|
-
toList
|
|
2387
|
+
toList: (array: ImmutableArray<a>) => List<a>
|
|
2342
2388
|
```
|
|
2343
2389
|
|
|
2344
2390
|
Converts the input array to a list.
|
|
@@ -2379,7 +2425,7 @@ assert Immutable.toList(arr) == ['d', 'b', 'c']
|
|
|
2379
2425
|
</details>
|
|
2380
2426
|
|
|
2381
2427
|
```grain
|
|
2382
|
-
filter
|
|
2428
|
+
filter: (fn: (a => Bool), array: ImmutableArray<a>) => ImmutableArray<a>
|
|
2383
2429
|
```
|
|
2384
2430
|
|
|
2385
2431
|
Produces a new array by calling a function on each element of
|
|
@@ -2423,7 +2469,7 @@ assert Immutable.toList(arr) == ['a', 'a']
|
|
|
2423
2469
|
</details>
|
|
2424
2470
|
|
|
2425
2471
|
```grain
|
|
2426
|
-
every
|
|
2472
|
+
every: (fn: (a => Bool), array: ImmutableArray<a>) => Bool
|
|
2427
2473
|
```
|
|
2428
2474
|
|
|
2429
2475
|
Checks that the given condition is satisfied for all
|
|
@@ -2440,7 +2486,7 @@ Returns:
|
|
|
2440
2486
|
|
|
2441
2487
|
|type|description|
|
|
2442
2488
|
|----|-----------|
|
|
2443
|
-
|`Bool`|`true` if all elements
|
|
2489
|
+
|`Bool`|`true` if all elements satisfy the condition or `false` otherwise|
|
|
2444
2490
|
|
|
2445
2491
|
Examples:
|
|
2446
2492
|
|
|
@@ -2471,7 +2517,7 @@ assert Immutable.every(e => e == 'a', arr) == false
|
|
|
2471
2517
|
</details>
|
|
2472
2518
|
|
|
2473
2519
|
```grain
|
|
2474
|
-
some
|
|
2520
|
+
some: (fn: (a => Bool), array: ImmutableArray<a>) => Bool
|
|
2475
2521
|
```
|
|
2476
2522
|
|
|
2477
2523
|
Checks that the given condition is satisfied **at least
|
|
@@ -2519,7 +2565,7 @@ assert Immutable.some(e => e == 'a', arr) == false
|
|
|
2519
2565
|
</details>
|
|
2520
2566
|
|
|
2521
2567
|
```grain
|
|
2522
|
-
reverse
|
|
2568
|
+
reverse: (array: ImmutableArray<a>) => ImmutableArray<a>
|
|
2523
2569
|
```
|
|
2524
2570
|
|
|
2525
2571
|
Creates a new array with all elements in reverse order.
|
|
@@ -2560,7 +2606,7 @@ assert Immutable.toList(arr) == ['c', 'b', 'a']
|
|
|
2560
2606
|
</details>
|
|
2561
2607
|
|
|
2562
2608
|
```grain
|
|
2563
|
-
contains
|
|
2609
|
+
contains: (search: a, array: ImmutableArray<a>) => Bool
|
|
2564
2610
|
```
|
|
2565
2611
|
|
|
2566
2612
|
Checks if the value is an element of the input array.
|
|
@@ -2608,7 +2654,7 @@ assert Immutable.contains('a', arr) == false
|
|
|
2608
2654
|
</details>
|
|
2609
2655
|
|
|
2610
2656
|
```grain
|
|
2611
|
-
find
|
|
2657
|
+
find: (fn: (a => Bool), array: ImmutableArray<a>) => Option<a>
|
|
2612
2658
|
```
|
|
2613
2659
|
|
|
2614
2660
|
Finds the first element in an array that satisfies the given condition.
|
|
@@ -2655,7 +2701,7 @@ assert Immutable.find(e => e == 2, arr) == None
|
|
|
2655
2701
|
</details>
|
|
2656
2702
|
|
|
2657
2703
|
```grain
|
|
2658
|
-
findIndex
|
|
2704
|
+
findIndex: (fn: (a => Bool), array: ImmutableArray<a>) => Option<Number>
|
|
2659
2705
|
```
|
|
2660
2706
|
|
|
2661
2707
|
Finds the first index in an array where the element satisfies the given condition.
|
|
@@ -2702,7 +2748,7 @@ assert Immutable.findIndex(e => e == 2, arr) == None
|
|
|
2702
2748
|
</details>
|
|
2703
2749
|
|
|
2704
2750
|
```grain
|
|
2705
|
-
product
|
|
2751
|
+
product:
|
|
2706
2752
|
(array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
|
|
2707
2753
|
ImmutableArray<(a, b)>
|
|
2708
2754
|
```
|
|
@@ -2747,7 +2793,7 @@ assert Immutable.product(arr1, arr2) == Immutable.fromList([(1, 3), (1, 4), (2,
|
|
|
2747
2793
|
</details>
|
|
2748
2794
|
|
|
2749
2795
|
```grain
|
|
2750
|
-
count
|
|
2796
|
+
count: (fn: (a => Bool), array: ImmutableArray<a>) => Number
|
|
2751
2797
|
```
|
|
2752
2798
|
|
|
2753
2799
|
Counts the number of elements in an array that satisfy the given condition.
|
|
@@ -2788,7 +2834,7 @@ assert Immutable.count(e => e == 1, arr) == 2
|
|
|
2788
2834
|
</details>
|
|
2789
2835
|
|
|
2790
2836
|
```grain
|
|
2791
|
-
unique
|
|
2837
|
+
unique: (array: ImmutableArray<a>) => ImmutableArray<a>
|
|
2792
2838
|
```
|
|
2793
2839
|
|
|
2794
2840
|
Produces a new array with any duplicates removed.
|
|
@@ -2829,7 +2875,7 @@ assert Immutable.unique(arr) == Immutable.fromList([1, 2, 3, 4])
|
|
|
2829
2875
|
</details>
|
|
2830
2876
|
|
|
2831
2877
|
```grain
|
|
2832
|
-
zip
|
|
2878
|
+
zip:
|
|
2833
2879
|
(array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
|
|
2834
2880
|
ImmutableArray<(a, b)>
|
|
2835
2881
|
```
|
|
@@ -2878,7 +2924,7 @@ assert Immutable.zip(arr1, arr2) == Immutable.fromList([(1, 4), (2, 5), (3, 6)])
|
|
|
2878
2924
|
</details>
|
|
2879
2925
|
|
|
2880
2926
|
```grain
|
|
2881
|
-
zipWith
|
|
2927
|
+
zipWith:
|
|
2882
2928
|
(fn: ((a, b) => c), array1: ImmutableArray<a>, array2: ImmutableArray<b>) =>
|
|
2883
2929
|
ImmutableArray<c>
|
|
2884
2930
|
```
|
|
@@ -2937,7 +2983,7 @@ assert Immutable.zipWith((a, b) => a * b, arr1, arr2) == Immutable.fromList([4,
|
|
|
2937
2983
|
</details>
|
|
2938
2984
|
|
|
2939
2985
|
```grain
|
|
2940
|
-
unzip
|
|
2986
|
+
unzip:
|
|
2941
2987
|
(array: ImmutableArray<(a, b)>) => (ImmutableArray<a>, ImmutableArray<b>)
|
|
2942
2988
|
```
|
|
2943
2989
|
|
|
@@ -2980,7 +3026,7 @@ assert Immutable.unzip(arr1) == (arr2, arr3)
|
|
|
2980
3026
|
</details>
|
|
2981
3027
|
|
|
2982
3028
|
```grain
|
|
2983
|
-
join
|
|
3029
|
+
join: (separator: String, array: ImmutableArray<String>) => String
|
|
2984
3030
|
```
|
|
2985
3031
|
|
|
2986
3032
|
Concatenates an array of strings into a single string, separated by a separator string.
|
|
@@ -3022,7 +3068,7 @@ assert Immutable.join(", ", arr) == "a, b, c"
|
|
|
3022
3068
|
</details>
|
|
3023
3069
|
|
|
3024
3070
|
```grain
|
|
3025
|
-
slice
|
|
3071
|
+
slice:
|
|
3026
3072
|
(start: Number, ?end: Number, array: ImmutableArray<a>) =>
|
|
3027
3073
|
ImmutableArray<a>
|
|
3028
3074
|
```
|
|
@@ -3076,7 +3122,7 @@ assert Immutable.slice(1, end=-1, arr) == Immutable.fromList(['b'])
|
|
|
3076
3122
|
</details>
|
|
3077
3123
|
|
|
3078
3124
|
```grain
|
|
3079
|
-
sort
|
|
3125
|
+
sort:
|
|
3080
3126
|
(?compare: ((num1: a, num2: a) => Number), array: ImmutableArray<a>) =>
|
|
3081
3127
|
ImmutableArray<a>
|
|
3082
3128
|
```
|
|
@@ -3121,7 +3167,7 @@ assert Immutable.sort(compare=(a, b) => a - b, arr) == Immutable.fromList([1, 2,
|
|
|
3121
3167
|
</details>
|
|
3122
3168
|
|
|
3123
3169
|
```grain
|
|
3124
|
-
rotate
|
|
3170
|
+
rotate: (n: Number, array: ImmutableArray<a>) => ImmutableArray<a>
|
|
3125
3171
|
```
|
|
3126
3172
|
|
|
3127
3173
|
Rotates array elements by the specified amount to the left, such that the
|