@@ -23,11 +23,13 @@ type Action(element) {
2323/// applied to the stream. Once the stream has all the required transformations
2424/// applied it can be evaluated using functions such as `fold` and `to_list`.
2525///
26+ @ deprecated ( "Please use the gleam_yielder package instead" )
2627pub opaque type Iterator ( element) {
2728 Iterator ( continuation : fn ( ) -> Action ( element) )
2829}
2930
3031// Public API for iteration
32+ @ deprecated ( "Please use the gleam_yielder package instead" )
3133pub type Step ( element, accumulator) {
3234 Next ( element : element, accumulator : accumulator)
3335 Done
@@ -59,6 +61,7 @@ fn stop() -> Action(element) {
5961/// // -> [5, 4, 3, 2, 1]
6062/// ```
6163///
64+ @ deprecated ( "Please use the gleam_yielder package instead" )
6265pub fn unfold (
6366 from initial : acc,
6467 with f : fn ( acc) -> Step ( element, acc) ,
@@ -91,6 +94,7 @@ fn unfold_loop(
9194/// // -> [7, 7, 7]
9295/// ```
9396///
97+ @ deprecated ( "Please use the gleam_yielder package instead" )
9498pub fn repeatedly ( f : fn ( ) -> element) -> Iterator ( element) {
9599 unfold ( Nil , fn ( _ ) { Next ( f ( ) , Nil ) } )
96100}
@@ -106,6 +110,7 @@ pub fn repeatedly(f: fn() -> element) -> Iterator(element) {
106110/// // -> [10, 10, 10, 10]
107111/// ```
108112///
113+ @ deprecated ( "Please use the gleam_yielder package instead" )
109114pub fn repeat ( x : element) -> Iterator ( element) {
110115 repeatedly ( fn ( ) { x } )
111116}
@@ -120,6 +125,7 @@ pub fn repeat(x: element) -> Iterator(element) {
120125/// // -> [1, 2, 3, 4]
121126/// ```
122127///
128+ @ deprecated ( "Please use the gleam_yielder package instead" )
123129pub fn from_list ( list : List ( element) ) -> Iterator ( element) {
124130 let yield = fn ( acc ) {
125131 case acc {
@@ -166,6 +172,7 @@ fn transform_loop(
166172/// // -> [#(0, "a"), #(1, "b"), #(2, "c")]
167173/// ```
168174///
175+ @ deprecated ( "Please use the gleam_yielder package instead" )
169176pub fn transform (
170177 over iterator : Iterator ( a) ,
171178 from initial : acc,
@@ -192,6 +199,7 @@ pub fn transform(
192199/// // -> 10
193200/// ```
194201///
202+ @ deprecated ( "Please use the gleam_yielder package instead" )
195203pub fn fold (
196204 over iterator : Iterator ( e) ,
197205 from initial : acc,
@@ -217,6 +225,7 @@ fn fold_loop(
217225/// you wish to trigger any side effects that would occur when evaluating
218226/// the iterator.
219227///
228+ @ deprecated ( "Please use the gleam_yielder package instead" )
220229pub fn run ( iterator : Iterator ( e) ) -> Nil {
221230 fold ( iterator , Nil , fn ( _ , _ ) { Nil } )
222231}
@@ -235,6 +244,7 @@ pub fn run(iterator: Iterator(e)) -> Nil {
235244/// // -> [2, 4, 6]
236245/// ```
237246///
247+ @ deprecated ( "Please use the gleam_yielder package instead" )
238248pub fn to_list ( iterator : Iterator ( element) ) -> List ( element) {
239249 iterator
240250 |> fold ( [ ] , fn ( acc , e ) { [ e , .. acc ] } )
@@ -263,6 +273,7 @@ pub fn to_list(iterator: Iterator(element)) -> List(element) {
263273/// // -> Done
264274/// ```
265275///
276+ @ deprecated ( "Please use the gleam_yielder package instead" )
266277pub fn step ( iterator : Iterator ( e) ) -> Step ( e, Iterator ( e) ) {
267278 case iterator . continuation ( ) {
268279 Stop -> Done
@@ -290,6 +301,7 @@ pub fn step(iterator: Iterator(e)) -> Step(e, Iterator(e)) {
290301/// // -> [1, 2]
291302/// ```
292303///
304+ @ deprecated ( "Please use the gleam_yielder package instead" )
293305pub fn take ( from iterator : Iterator ( e) , up_to desired : Int ) -> Iterator ( e) {
294306 iterator . continuation
295307 |> take_loop ( desired )
@@ -334,6 +346,7 @@ fn take_loop(continuation: fn() -> Action(e), desired: Int) -> fn() -> Action(e)
334346/// // -> []
335347/// ```
336348///
349+ @ deprecated ( "Please use the gleam_yielder package instead" )
337350pub fn drop ( from iterator : Iterator ( e) , up_to desired : Int ) -> Iterator ( e) {
338351 fn ( ) { drop_loop ( iterator . continuation , desired ) }
339352 |> Iterator
@@ -367,6 +380,7 @@ fn drop_loop(continuation: fn() -> Action(e), desired: Int) -> Action(e) {
367380/// // -> [2, 4, 6]
368381/// ```
369382///
383+ @ deprecated ( "Please use the gleam_yielder package instead" )
370384pub fn map ( over iterator : Iterator ( a) , with f : fn ( a) -> b) -> Iterator ( b) {
371385 iterator . continuation
372386 |> map_loop ( f )
@@ -405,6 +419,7 @@ fn map_loop(continuation: fn() -> Action(a), f: fn(a) -> b) -> fn() -> Action(b)
405419/// // -> [#(1, "a"), #(2, "b")]
406420/// ```
407421///
422+ @ deprecated ( "Please use the gleam_yielder package instead" )
408423pub fn map2 (
409424 iterator1 : Iterator ( a) ,
410425 iterator2 : Iterator ( b) ,
@@ -446,6 +461,7 @@ fn map2_loop(
446461/// // -> [1, 2, 3, 4]
447462/// ```
448463///
464+ @ deprecated ( "Please use the gleam_yielder package instead" )
449465pub fn append ( to first : Iterator ( a) , suffix second : Iterator ( a) ) -> Iterator ( a) {
450466 fn ( ) { append_loop ( first . continuation , second . continuation ) }
451467 |> Iterator
@@ -473,6 +489,7 @@ fn append_loop(first: fn() -> Action(a), second: fn() -> Action(a)) -> Action(a)
473489/// // -> [1, 2, 3, 4]
474490/// ```
475491///
492+ @ deprecated ( "Please use the gleam_yielder package instead" )
476493pub fn flatten ( iterator : Iterator ( Iterator ( a) ) ) -> Iterator ( a) {
477494 fn ( ) { flatten_loop ( iterator . continuation ) }
478495 |> Iterator
@@ -501,6 +518,7 @@ fn flatten_loop(flattened: fn() -> Action(Iterator(a))) -> Action(a) {
501518/// // -> [1, 2, 3, 4]
502519/// ```
503520///
521+ @ deprecated ( "Please use the gleam_yielder package instead" )
504522pub fn concat ( iterators : List ( Iterator ( a) ) ) -> Iterator ( a) {
505523 flatten ( from_list ( iterators ) )
506524}
@@ -523,6 +541,7 @@ pub fn concat(iterators: List(Iterator(a))) -> Iterator(a) {
523541/// // -> [1, 2, 2, 3]
524542/// ```
525543///
544+ @ deprecated ( "Please use the gleam_yielder package instead" )
526545pub fn flat_map (
527546 over iterator : Iterator ( a) ,
528547 with f : fn ( a) -> Iterator ( b) ,
@@ -551,6 +570,7 @@ pub fn flat_map(
551570/// // -> [2, 4]
552571/// ```
553572///
573+ @ deprecated ( "Please use the gleam_yielder package instead" )
554574pub fn filter (
555575 iterator : Iterator ( a) ,
556576 keeping predicate : fn ( a) -> Bool ,
@@ -629,6 +649,7 @@ fn filter_map_loop(
629649/// // -> [1, 2, 1, 2, 1, 2]
630650/// ```
631651///
652+ @ deprecated ( "Please use the gleam_yielder package instead" )
632653pub fn cycle ( iterator : Iterator ( a) ) -> Iterator ( a) {
633654 repeat ( iterator )
634655 |> flatten
@@ -654,6 +675,7 @@ pub fn cycle(iterator: Iterator(a)) -> Iterator(a) {
654675/// // -> [0]
655676/// ```
656677///
678+ @ deprecated ( "Please use the gleam_yielder package instead" )
657679pub fn range ( from start : Int , to stop : Int ) -> Iterator ( Int ) {
658680 case int . compare ( start , stop ) {
659681 order . Eq -> once ( fn ( ) { start } )
@@ -698,6 +720,7 @@ pub fn range(from start: Int, to stop: Int) -> Iterator(Int) {
698720/// // -> Error(Nil)
699721/// ```
700722///
723+ @ deprecated ( "Please use the gleam_yielder package instead" )
701724pub fn find (
702725 in haystack : Iterator ( a) ,
703726 one_that is_desired : fn ( a) -> Bool ,
@@ -743,6 +766,7 @@ fn find_loop(
743766/// // -> Error(Nil)
744767/// ```
745768///
769+ @ deprecated ( "Please use the gleam_yielder package instead" )
746770pub fn find_map (
747771 in haystack : Iterator ( a) ,
748772 one_that is_desired : fn ( a) -> Result ( b, c) ,
@@ -774,6 +798,7 @@ fn find_map_loop(
774798/// // -> [#("a", 0), #("b", 1), #("c", 2)]
775799/// ```
776800///
801+ @ deprecated ( "Please use the gleam_yielder package instead" )
777802pub fn index ( over iterator : Iterator ( element) ) -> Iterator ( # ( element, Int ) ) {
778803 iterator . continuation
779804 |> index_loop ( 0 )
@@ -802,6 +827,7 @@ fn index_loop(
802827/// // -> [1, 3, 9, 27, 81]
803828/// ```
804829///
830+ @ deprecated ( "Please use the gleam_yielder package instead" )
805831pub fn iterate (
806832 from initial : element,
807833 with f : fn ( element) -> element,
@@ -820,6 +846,7 @@ pub fn iterate(
820846/// // -> [1, 2]
821847/// ```
822848///
849+ @ deprecated ( "Please use the gleam_yielder package instead" )
823850pub fn take_while (
824851 in iterator : Iterator ( element) ,
825852 satisfying predicate : fn ( element) -> Bool ,
@@ -857,6 +884,7 @@ fn take_while_loop(
857884/// // -> [4, 2, 5]
858885/// ```
859886///
887+ @ deprecated ( "Please use the gleam_yielder package instead" )
860888pub fn drop_while (
861889 in iterator : Iterator ( element) ,
862890 satisfying predicate : fn ( element) -> Bool ,
@@ -893,6 +921,7 @@ fn drop_while_loop(
893921/// // -> [1, 3, 6, 10, 15]
894922/// ```
895923///
924+ @ deprecated ( "Please use the gleam_yielder package instead" )
896925pub fn scan (
897926 over iterator : Iterator ( element) ,
898927 from initial : acc,
@@ -931,6 +960,7 @@ fn scan_loop(
931960/// // -> [#("a", 20), #("b", 21), #("c", 22)]
932961/// ```
933962///
963+ @ deprecated ( "Please use the gleam_yielder package instead" )
934964pub fn zip ( left : Iterator ( a) , right : Iterator ( b) ) -> Iterator ( # ( a, b) ) {
935965 zip_loop ( left . continuation , right . continuation )
936966 |> Iterator
@@ -971,6 +1001,7 @@ type Chunk(element, key) {
9711001/// // -> [[1], [2, 2], [3], [4, 4, 6], [7, 7]]
9721002/// ```
9731003///
1004+ @ deprecated ( "Please use the gleam_yielder package instead" )
9741005pub fn chunk (
9751006 over iterator : Iterator ( element) ,
9761007 by f : fn ( element) -> key,
@@ -1038,6 +1069,7 @@ fn next_chunk(
10381069/// // -> [[1, 2, 3], [4, 5, 6], [7, 8]]
10391070/// ```
10401071///
1072+ @ deprecated ( "Please use the gleam_yielder package instead" )
10411073pub fn sized_chunk (
10421074 over iterator : Iterator ( element) ,
10431075 into count : Int ,
@@ -1115,6 +1147,7 @@ fn next_sized_chunk(
11151147/// // -> [1, 0, 2, 0, 3, 0, 4, 0, 5]
11161148/// ```
11171149///
1150+ @ deprecated ( "Please use the gleam_yielder package instead" )
11181151pub fn intersperse (
11191152 over iterator : Iterator ( element) ,
11201153 with elem : element,
@@ -1168,6 +1201,7 @@ fn intersperse_loop(
11681201/// // -> False
11691202/// ```
11701203///
1204+ @ deprecated ( "Please use the gleam_yielder package instead" )
11711205pub fn any (
11721206 in iterator : Iterator ( element) ,
11731207 satisfying predicate : fn ( element) -> Bool ,
@@ -1217,6 +1251,7 @@ fn any_loop(
12171251/// // -> False
12181252/// ```
12191253///
1254+ @ deprecated ( "Please use the gleam_yielder package instead" )
12201255pub fn all (
12211256 in iterator : Iterator ( element) ,
12221257 satisfying predicate : fn ( element) -> Bool ,
@@ -1252,6 +1287,7 @@ fn all_loop(
12521287/// // -> dict.from_list([#(0, [3, 6]), #(1, [1, 4]), #(2, [2, 5])])
12531288/// ```
12541289///
1290+ @ deprecated ( "Please use the gleam_yielder package instead" )
12551291pub fn group (
12561292 in iterator : Iterator ( element) ,
12571293 by key : fn ( element) -> key,
@@ -1300,6 +1336,7 @@ fn update_group_with(el: element) -> fn(Option(List(element))) -> List(element)
13001336/// // -> Ok(15)
13011337/// ```
13021338///
1339+ @ deprecated ( "Please use the gleam_yielder package instead" )
13031340pub fn reduce (
13041341 over iterator : Iterator ( e) ,
13051342 with f : fn ( e, e) -> e,
@@ -1330,6 +1367,7 @@ pub fn reduce(
13301367/// // -> Ok(10)
13311368/// ```
13321369///
1370+ @ deprecated ( "Please use the gleam_yielder package instead" )
13331371pub fn last ( iterator : Iterator ( element) ) -> Result ( element, Nil ) {
13341372 iterator
13351373 |> reduce ( fn ( _ , elem ) { elem } )
@@ -1344,6 +1382,7 @@ pub fn last(iterator: Iterator(element)) -> Result(element, Nil) {
13441382/// // -> []
13451383/// ```
13461384///
1385+ @ deprecated ( "Please use the gleam_yielder package instead" )
13471386pub fn empty ( ) -> Iterator ( element) {
13481387 Iterator ( stop )
13491388}
@@ -1357,6 +1396,7 @@ pub fn empty() -> Iterator(element) {
13571396/// // -> [1]
13581397/// ```
13591398///
1399+ @ deprecated ( "Please use the gleam_yielder package instead" )
13601400pub fn once ( f : fn ( ) -> element) -> Iterator ( element) {
13611401 fn ( ) { Continue ( f ( ) , stop ) }
13621402 |> Iterator
@@ -1371,6 +1411,7 @@ pub fn once(f: fn() -> element) -> Iterator(element) {
13711411/// // -> [1]
13721412/// ```
13731413///
1414+ @ deprecated ( "Please use the gleam_yielder package instead" )
13741415pub fn single ( elem : element) -> Iterator ( element) {
13751416 once ( fn ( ) { elem } )
13761417}
@@ -1394,6 +1435,7 @@ pub fn single(elem: element) -> Iterator(element) {
13941435/// // -> [1, 100, 2, 3, 4]
13951436/// ```
13961437///
1438+ @ deprecated ( "Please use the gleam_yielder package instead" )
13971439pub fn interleave (
13981440 left : Iterator ( element) ,
13991441 with right : Iterator ( element) ,
@@ -1437,6 +1479,7 @@ fn interleave_loop(
14371479/// // -> 6
14381480/// ```
14391481///
1482+ @ deprecated ( "Please use the gleam_yielder package instead" )
14401483pub fn fold_until (
14411484 over iterator : Iterator ( e) ,
14421485 from initial : acc,
@@ -1480,6 +1523,7 @@ fn fold_until_loop(
14801523/// // -> Error(Nil)
14811524/// ```
14821525///
1526+ @ deprecated ( "Please use the gleam_yielder package instead" )
14831527pub fn try_fold (
14841528 over iterator : Iterator ( e) ,
14851529 from initial : acc,
@@ -1519,6 +1563,7 @@ fn try_fold_loop(
15191563/// empty() |> first
15201564/// // -> Error(Nil)
15211565/// ```
1566+ @ deprecated ( "Please use the gleam_yielder package instead" )
15221567pub fn first ( from iterator : Iterator ( e) ) -> Result ( e, Nil ) {
15231568 case iterator . continuation ( ) {
15241569 Stop -> Error ( Nil )
@@ -1549,6 +1594,7 @@ pub fn first(from iterator: Iterator(e)) -> Result(e, Nil) {
15491594/// // -> Error(Nil)
15501595/// ```
15511596///
1597+ @ deprecated ( "Please use the gleam_yielder package instead" )
15521598pub fn at ( in iterator : Iterator ( e) , get index : Int ) -> Result ( e, Nil ) {
15531599 iterator
15541600 |> drop ( index )
@@ -1572,6 +1618,7 @@ pub fn at(in iterator: Iterator(e), get index: Int) -> Result(e, Nil) {
15721618/// // -> 4
15731619/// ```
15741620///
1621+ @ deprecated ( "Please use the gleam_yielder package instead" )
15751622pub fn length ( over iterator : Iterator ( e) ) -> Int {
15761623 iterator . continuation
15771624 |> length_loop ( 0 )
@@ -1601,6 +1648,7 @@ fn length_loop(over continuation: fn() -> Action(e), with length: Int) -> Int {
16011648/// // Louis
16021649/// ```
16031650///
1651+ @ deprecated ( "Please use the gleam_yielder package instead" )
16041652pub fn each ( over iterator : Iterator ( a) , with f : fn ( a) -> b) -> Nil {
16051653 iterator
16061654 |> map ( f )
@@ -1626,6 +1674,7 @@ pub fn each(over iterator: Iterator(a), with f: fn(a) -> b) -> Nil {
16261674/// // -> [1, 2, 3]
16271675/// ```
16281676///
1677+ @ deprecated ( "Please use the gleam_yielder package instead" )
16291678pub fn yield ( element : a, next : fn ( ) -> Iterator ( a) ) -> Iterator ( a) {
16301679 Iterator ( fn ( ) { Continue ( element , fn ( ) { next ( ) . continuation ( ) } ) } )
16311680}
0 commit comments