diff options
Diffstat (limited to 'IterableClass.icl')
-rw-r--r-- | IterableClass.icl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/IterableClass.icl b/IterableClass.icl new file mode 100644 index 0000000..97340ba --- /dev/null +++ b/IterableClass.icl @@ -0,0 +1,18 @@ +implementation module IterableClass + +import StdEnv + +stepn :: Int a -> a | step a +stepn 0 a = a +stepn n a = stepn (n-1) (step a) + +rewindn :: Int a -> a | rewind a +rewindn 0 a = a +rewindn n a = rewindn (n-1) (rewind a) + +stepOrRewindn :: Int a -> a | step, rewind a +stepOrRewindn 0 a = a +stepOrRewindn n a +| n < 0 = rewindn (0-n) a +| n > 0 = stepn n a + |