File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -31,3 +31,9 @@ def folder(acc, element):
3131 return acc .on (lambda r : element .on (lambda r2 : f (r , r2 )))
3232
3333 return reduce (folder , effects , _sneaky )
34+
35+
36+ def sequence (effects ):
37+ def folder (acc , element ):
38+ return acc + [element ]
39+ return fold_effect (folder , [], effects )
Original file line number Diff line number Diff line change 22import operator
33
44from effect import Effect , sync_perform
5- from effect .fold import fold_effect
5+ from effect .fold import fold_effect , sequence
66from effect .testing import SequenceDispatcher
77
88
@@ -19,3 +19,18 @@ def test_fold_effect():
1919 with dispatcher .consume ():
2020 result = sync_perform (dispatcher , eff )
2121 assert result == 'NilEiBeeCee'
22+
23+
24+ def test_sequence ():
25+ effs = [Effect ('a' ), Effect ('b' ), Effect ('c' )]
26+ dispatcher = SequenceDispatcher ([
27+ ('a' , lambda i : 'Ei' ),
28+ ('b' , lambda i : 'Bee' ),
29+ ('c' , lambda i : 'Cee' ),
30+ ])
31+ eff = sequence (effs )
32+
33+ print "what the heck is sequence returning?" , eff
34+ with dispatcher .consume ():
35+ result = sync_perform (dispatcher , eff )
36+ assert result == ['Ei' , 'Bee' , 'Cee' ]
You can’t perform that action at this time.
0 commit comments