diff options
author | Camil Staps | 2015-09-02 20:16:20 +0200 |
---|---|---|
committer | Camil Staps | 2015-09-02 20:31:10 +0200 |
commit | 3c96313867236ba84ab2c7e1911cf99a2361590e (patch) | |
tree | 5ad93144f73274f0eb4a60748e260e9b8c037a16 /IterableClass.icl |
Initial commit
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 + |