@@ -23,11 +23,13 @@ type Action(element) {
23
23
/// applied to the stream. Once the stream has all the required transformations
24
24
/// applied it can be evaluated using functions such as `fold` and `to_list`.
25
25
///
26
+ @ deprecated ( "Please use the gleam_yielder package instead" )
26
27
pub opaque type Iterator ( element) {
27
28
Iterator ( continuation : fn ( ) -> Action ( element) )
28
29
}
29
30
30
31
// Public API for iteration
32
+ @ deprecated ( "Please use the gleam_yielder package instead" )
31
33
pub type Step ( element, accumulator) {
32
34
Next ( element : element, accumulator : accumulator)
33
35
Done
@@ -59,6 +61,7 @@ fn stop() -> Action(element) {
59
61
/// // -> [5, 4, 3, 2, 1]
60
62
/// ```
61
63
///
64
+ @ deprecated ( "Please use the gleam_yielder package instead" )
62
65
pub fn unfold (
63
66
from initial : acc,
64
67
with f : fn ( acc) -> Step ( element, acc) ,
@@ -91,6 +94,7 @@ fn unfold_loop(
91
94
/// // -> [7, 7, 7]
92
95
/// ```
93
96
///
97
+ @ deprecated ( "Please use the gleam_yielder package instead" )
94
98
pub fn repeatedly ( f : fn ( ) -> element) -> Iterator ( element) {
95
99
unfold ( Nil , fn ( _ ) { Next ( f ( ) , Nil ) } )
96
100
}
@@ -106,6 +110,7 @@ pub fn repeatedly(f: fn() -> element) -> Iterator(element) {
106
110
/// // -> [10, 10, 10, 10]
107
111
/// ```
108
112
///
113
+ @ deprecated ( "Please use the gleam_yielder package instead" )
109
114
pub fn repeat ( x : element) -> Iterator ( element) {
110
115
repeatedly ( fn ( ) { x } )
111
116
}
@@ -120,6 +125,7 @@ pub fn repeat(x: element) -> Iterator(element) {
120
125
/// // -> [1, 2, 3, 4]
121
126
/// ```
122
127
///
128
+ @ deprecated ( "Please use the gleam_yielder package instead" )
123
129
pub fn from_list ( list : List ( element) ) -> Iterator ( element) {
124
130
let yield = fn ( acc ) {
125
131
case acc {
@@ -166,6 +172,7 @@ fn transform_loop(
166
172
/// // -> [#(0, "a"), #(1, "b"), #(2, "c")]
167
173
/// ```
168
174
///
175
+ @ deprecated ( "Please use the gleam_yielder package instead" )
169
176
pub fn transform (
170
177
over iterator : Iterator ( a) ,
171
178
from initial : acc,
@@ -192,6 +199,7 @@ pub fn transform(
192
199
/// // -> 10
193
200
/// ```
194
201
///
202
+ @ deprecated ( "Please use the gleam_yielder package instead" )
195
203
pub fn fold (
196
204
over iterator : Iterator ( e) ,
197
205
from initial : acc,
@@ -217,6 +225,7 @@ fn fold_loop(
217
225
/// you wish to trigger any side effects that would occur when evaluating
218
226
/// the iterator.
219
227
///
228
+ @ deprecated ( "Please use the gleam_yielder package instead" )
220
229
pub fn run ( iterator : Iterator ( e) ) -> Nil {
221
230
fold ( iterator , Nil , fn ( _ , _ ) { Nil } )
222
231
}
@@ -235,6 +244,7 @@ pub fn run(iterator: Iterator(e)) -> Nil {
235
244
/// // -> [2, 4, 6]
236
245
/// ```
237
246
///
247
+ @ deprecated ( "Please use the gleam_yielder package instead" )
238
248
pub fn to_list ( iterator : Iterator ( element) ) -> List ( element) {
239
249
iterator
240
250
|> fold ( [ ] , fn ( acc , e ) { [ e , .. acc ] } )
@@ -263,6 +273,7 @@ pub fn to_list(iterator: Iterator(element)) -> List(element) {
263
273
/// // -> Done
264
274
/// ```
265
275
///
276
+ @ deprecated ( "Please use the gleam_yielder package instead" )
266
277
pub fn step ( iterator : Iterator ( e) ) -> Step ( e, Iterator ( e) ) {
267
278
case iterator . continuation ( ) {
268
279
Stop -> Done
@@ -290,6 +301,7 @@ pub fn step(iterator: Iterator(e)) -> Step(e, Iterator(e)) {
290
301
/// // -> [1, 2]
291
302
/// ```
292
303
///
304
+ @ deprecated ( "Please use the gleam_yielder package instead" )
293
305
pub fn take ( from iterator : Iterator ( e) , up_to desired : Int ) -> Iterator ( e) {
294
306
iterator . continuation
295
307
|> take_loop ( desired )
@@ -334,6 +346,7 @@ fn take_loop(continuation: fn() -> Action(e), desired: Int) -> fn() -> Action(e)
334
346
/// // -> []
335
347
/// ```
336
348
///
349
+ @ deprecated ( "Please use the gleam_yielder package instead" )
337
350
pub fn drop ( from iterator : Iterator ( e) , up_to desired : Int ) -> Iterator ( e) {
338
351
fn ( ) { drop_loop ( iterator . continuation , desired ) }
339
352
|> Iterator
@@ -367,6 +380,7 @@ fn drop_loop(continuation: fn() -> Action(e), desired: Int) -> Action(e) {
367
380
/// // -> [2, 4, 6]
368
381
/// ```
369
382
///
383
+ @ deprecated ( "Please use the gleam_yielder package instead" )
370
384
pub fn map ( over iterator : Iterator ( a) , with f : fn ( a) -> b) -> Iterator ( b) {
371
385
iterator . continuation
372
386
|> map_loop ( f )
@@ -405,6 +419,7 @@ fn map_loop(continuation: fn() -> Action(a), f: fn(a) -> b) -> fn() -> Action(b)
405
419
/// // -> [#(1, "a"), #(2, "b")]
406
420
/// ```
407
421
///
422
+ @ deprecated ( "Please use the gleam_yielder package instead" )
408
423
pub fn map2 (
409
424
iterator1 : Iterator ( a) ,
410
425
iterator2 : Iterator ( b) ,
@@ -446,6 +461,7 @@ fn map2_loop(
446
461
/// // -> [1, 2, 3, 4]
447
462
/// ```
448
463
///
464
+ @ deprecated ( "Please use the gleam_yielder package instead" )
449
465
pub fn append ( to first : Iterator ( a) , suffix second : Iterator ( a) ) -> Iterator ( a) {
450
466
fn ( ) { append_loop ( first . continuation , second . continuation ) }
451
467
|> Iterator
@@ -473,6 +489,7 @@ fn append_loop(first: fn() -> Action(a), second: fn() -> Action(a)) -> Action(a)
473
489
/// // -> [1, 2, 3, 4]
474
490
/// ```
475
491
///
492
+ @ deprecated ( "Please use the gleam_yielder package instead" )
476
493
pub fn flatten ( iterator : Iterator ( Iterator ( a) ) ) -> Iterator ( a) {
477
494
fn ( ) { flatten_loop ( iterator . continuation ) }
478
495
|> Iterator
@@ -501,6 +518,7 @@ fn flatten_loop(flattened: fn() -> Action(Iterator(a))) -> Action(a) {
501
518
/// // -> [1, 2, 3, 4]
502
519
/// ```
503
520
///
521
+ @ deprecated ( "Please use the gleam_yielder package instead" )
504
522
pub fn concat ( iterators : List ( Iterator ( a) ) ) -> Iterator ( a) {
505
523
flatten ( from_list ( iterators ) )
506
524
}
@@ -523,6 +541,7 @@ pub fn concat(iterators: List(Iterator(a))) -> Iterator(a) {
523
541
/// // -> [1, 2, 2, 3]
524
542
/// ```
525
543
///
544
+ @ deprecated ( "Please use the gleam_yielder package instead" )
526
545
pub fn flat_map (
527
546
over iterator : Iterator ( a) ,
528
547
with f : fn ( a) -> Iterator ( b) ,
@@ -551,6 +570,7 @@ pub fn flat_map(
551
570
/// // -> [2, 4]
552
571
/// ```
553
572
///
573
+ @ deprecated ( "Please use the gleam_yielder package instead" )
554
574
pub fn filter (
555
575
iterator : Iterator ( a) ,
556
576
keeping predicate : fn ( a) -> Bool ,
@@ -629,6 +649,7 @@ fn filter_map_loop(
629
649
/// // -> [1, 2, 1, 2, 1, 2]
630
650
/// ```
631
651
///
652
+ @ deprecated ( "Please use the gleam_yielder package instead" )
632
653
pub fn cycle ( iterator : Iterator ( a) ) -> Iterator ( a) {
633
654
repeat ( iterator )
634
655
|> flatten
@@ -654,6 +675,7 @@ pub fn cycle(iterator: Iterator(a)) -> Iterator(a) {
654
675
/// // -> [0]
655
676
/// ```
656
677
///
678
+ @ deprecated ( "Please use the gleam_yielder package instead" )
657
679
pub fn range ( from start : Int , to stop : Int ) -> Iterator ( Int ) {
658
680
case int . compare ( start , stop ) {
659
681
order . Eq -> once ( fn ( ) { start } )
@@ -698,6 +720,7 @@ pub fn range(from start: Int, to stop: Int) -> Iterator(Int) {
698
720
/// // -> Error(Nil)
699
721
/// ```
700
722
///
723
+ @ deprecated ( "Please use the gleam_yielder package instead" )
701
724
pub fn find (
702
725
in haystack : Iterator ( a) ,
703
726
one_that is_desired : fn ( a) -> Bool ,
@@ -743,6 +766,7 @@ fn find_loop(
743
766
/// // -> Error(Nil)
744
767
/// ```
745
768
///
769
+ @ deprecated ( "Please use the gleam_yielder package instead" )
746
770
pub fn find_map (
747
771
in haystack : Iterator ( a) ,
748
772
one_that is_desired : fn ( a) -> Result ( b, c) ,
@@ -774,6 +798,7 @@ fn find_map_loop(
774
798
/// // -> [#("a", 0), #("b", 1), #("c", 2)]
775
799
/// ```
776
800
///
801
+ @ deprecated ( "Please use the gleam_yielder package instead" )
777
802
pub fn index ( over iterator : Iterator ( element) ) -> Iterator ( # ( element, Int ) ) {
778
803
iterator . continuation
779
804
|> index_loop ( 0 )
@@ -802,6 +827,7 @@ fn index_loop(
802
827
/// // -> [1, 3, 9, 27, 81]
803
828
/// ```
804
829
///
830
+ @ deprecated ( "Please use the gleam_yielder package instead" )
805
831
pub fn iterate (
806
832
from initial : element,
807
833
with f : fn ( element) -> element,
@@ -820,6 +846,7 @@ pub fn iterate(
820
846
/// // -> [1, 2]
821
847
/// ```
822
848
///
849
+ @ deprecated ( "Please use the gleam_yielder package instead" )
823
850
pub fn take_while (
824
851
in iterator : Iterator ( element) ,
825
852
satisfying predicate : fn ( element) -> Bool ,
@@ -857,6 +884,7 @@ fn take_while_loop(
857
884
/// // -> [4, 2, 5]
858
885
/// ```
859
886
///
887
+ @ deprecated ( "Please use the gleam_yielder package instead" )
860
888
pub fn drop_while (
861
889
in iterator : Iterator ( element) ,
862
890
satisfying predicate : fn ( element) -> Bool ,
@@ -893,6 +921,7 @@ fn drop_while_loop(
893
921
/// // -> [1, 3, 6, 10, 15]
894
922
/// ```
895
923
///
924
+ @ deprecated ( "Please use the gleam_yielder package instead" )
896
925
pub fn scan (
897
926
over iterator : Iterator ( element) ,
898
927
from initial : acc,
@@ -931,6 +960,7 @@ fn scan_loop(
931
960
/// // -> [#("a", 20), #("b", 21), #("c", 22)]
932
961
/// ```
933
962
///
963
+ @ deprecated ( "Please use the gleam_yielder package instead" )
934
964
pub fn zip ( left : Iterator ( a) , right : Iterator ( b) ) -> Iterator ( # ( a, b) ) {
935
965
zip_loop ( left . continuation , right . continuation )
936
966
|> Iterator
@@ -971,6 +1001,7 @@ type Chunk(element, key) {
971
1001
/// // -> [[1], [2, 2], [3], [4, 4, 6], [7, 7]]
972
1002
/// ```
973
1003
///
1004
+ @ deprecated ( "Please use the gleam_yielder package instead" )
974
1005
pub fn chunk (
975
1006
over iterator : Iterator ( element) ,
976
1007
by f : fn ( element) -> key,
@@ -1038,6 +1069,7 @@ fn next_chunk(
1038
1069
/// // -> [[1, 2, 3], [4, 5, 6], [7, 8]]
1039
1070
/// ```
1040
1071
///
1072
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1041
1073
pub fn sized_chunk (
1042
1074
over iterator : Iterator ( element) ,
1043
1075
into count : Int ,
@@ -1115,6 +1147,7 @@ fn next_sized_chunk(
1115
1147
/// // -> [1, 0, 2, 0, 3, 0, 4, 0, 5]
1116
1148
/// ```
1117
1149
///
1150
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1118
1151
pub fn intersperse (
1119
1152
over iterator : Iterator ( element) ,
1120
1153
with elem : element,
@@ -1168,6 +1201,7 @@ fn intersperse_loop(
1168
1201
/// // -> False
1169
1202
/// ```
1170
1203
///
1204
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1171
1205
pub fn any (
1172
1206
in iterator : Iterator ( element) ,
1173
1207
satisfying predicate : fn ( element) -> Bool ,
@@ -1217,6 +1251,7 @@ fn any_loop(
1217
1251
/// // -> False
1218
1252
/// ```
1219
1253
///
1254
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1220
1255
pub fn all (
1221
1256
in iterator : Iterator ( element) ,
1222
1257
satisfying predicate : fn ( element) -> Bool ,
@@ -1252,6 +1287,7 @@ fn all_loop(
1252
1287
/// // -> dict.from_list([#(0, [3, 6]), #(1, [1, 4]), #(2, [2, 5])])
1253
1288
/// ```
1254
1289
///
1290
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1255
1291
pub fn group (
1256
1292
in iterator : Iterator ( element) ,
1257
1293
by key : fn ( element) -> key,
@@ -1300,6 +1336,7 @@ fn update_group_with(el: element) -> fn(Option(List(element))) -> List(element)
1300
1336
/// // -> Ok(15)
1301
1337
/// ```
1302
1338
///
1339
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1303
1340
pub fn reduce (
1304
1341
over iterator : Iterator ( e) ,
1305
1342
with f : fn ( e, e) -> e,
@@ -1330,6 +1367,7 @@ pub fn reduce(
1330
1367
/// // -> Ok(10)
1331
1368
/// ```
1332
1369
///
1370
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1333
1371
pub fn last ( iterator : Iterator ( element) ) -> Result ( element, Nil ) {
1334
1372
iterator
1335
1373
|> reduce ( fn ( _ , elem ) { elem } )
@@ -1344,6 +1382,7 @@ pub fn last(iterator: Iterator(element)) -> Result(element, Nil) {
1344
1382
/// // -> []
1345
1383
/// ```
1346
1384
///
1385
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1347
1386
pub fn empty ( ) -> Iterator ( element) {
1348
1387
Iterator ( stop )
1349
1388
}
@@ -1357,6 +1396,7 @@ pub fn empty() -> Iterator(element) {
1357
1396
/// // -> [1]
1358
1397
/// ```
1359
1398
///
1399
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1360
1400
pub fn once ( f : fn ( ) -> element) -> Iterator ( element) {
1361
1401
fn ( ) { Continue ( f ( ) , stop ) }
1362
1402
|> Iterator
@@ -1371,6 +1411,7 @@ pub fn once(f: fn() -> element) -> Iterator(element) {
1371
1411
/// // -> [1]
1372
1412
/// ```
1373
1413
///
1414
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1374
1415
pub fn single ( elem : element) -> Iterator ( element) {
1375
1416
once ( fn ( ) { elem } )
1376
1417
}
@@ -1394,6 +1435,7 @@ pub fn single(elem: element) -> Iterator(element) {
1394
1435
/// // -> [1, 100, 2, 3, 4]
1395
1436
/// ```
1396
1437
///
1438
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1397
1439
pub fn interleave (
1398
1440
left : Iterator ( element) ,
1399
1441
with right : Iterator ( element) ,
@@ -1437,6 +1479,7 @@ fn interleave_loop(
1437
1479
/// // -> 6
1438
1480
/// ```
1439
1481
///
1482
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1440
1483
pub fn fold_until (
1441
1484
over iterator : Iterator ( e) ,
1442
1485
from initial : acc,
@@ -1480,6 +1523,7 @@ fn fold_until_loop(
1480
1523
/// // -> Error(Nil)
1481
1524
/// ```
1482
1525
///
1526
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1483
1527
pub fn try_fold (
1484
1528
over iterator : Iterator ( e) ,
1485
1529
from initial : acc,
@@ -1519,6 +1563,7 @@ fn try_fold_loop(
1519
1563
/// empty() |> first
1520
1564
/// // -> Error(Nil)
1521
1565
/// ```
1566
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1522
1567
pub fn first ( from iterator : Iterator ( e) ) -> Result ( e, Nil ) {
1523
1568
case iterator . continuation ( ) {
1524
1569
Stop -> Error ( Nil )
@@ -1549,6 +1594,7 @@ pub fn first(from iterator: Iterator(e)) -> Result(e, Nil) {
1549
1594
/// // -> Error(Nil)
1550
1595
/// ```
1551
1596
///
1597
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1552
1598
pub fn at ( in iterator : Iterator ( e) , get index : Int ) -> Result ( e, Nil ) {
1553
1599
iterator
1554
1600
|> drop ( index )
@@ -1572,6 +1618,7 @@ pub fn at(in iterator: Iterator(e), get index: Int) -> Result(e, Nil) {
1572
1618
/// // -> 4
1573
1619
/// ```
1574
1620
///
1621
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1575
1622
pub fn length ( over iterator : Iterator ( e) ) -> Int {
1576
1623
iterator . continuation
1577
1624
|> length_loop ( 0 )
@@ -1601,6 +1648,7 @@ fn length_loop(over continuation: fn() -> Action(e), with length: Int) -> Int {
1601
1648
/// // Louis
1602
1649
/// ```
1603
1650
///
1651
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1604
1652
pub fn each ( over iterator : Iterator ( a) , with f : fn ( a) -> b) -> Nil {
1605
1653
iterator
1606
1654
|> map ( f )
@@ -1626,6 +1674,7 @@ pub fn each(over iterator: Iterator(a), with f: fn(a) -> b) -> Nil {
1626
1674
/// // -> [1, 2, 3]
1627
1675
/// ```
1628
1676
///
1677
+ @ deprecated ( "Please use the gleam_yielder package instead" )
1629
1678
pub fn yield ( element : a, next : fn ( ) -> Iterator ( a) ) -> Iterator ( a) {
1630
1679
Iterator ( fn ( ) { Continue ( element , fn ( ) { next ( ) . continuation ( ) } ) } )
1631
1680
}
0 commit comments