diff options
Diffstat (limited to 'p99/p19.neb')
| -rw-r--r-- | p99/p19.neb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/p99/p19.neb b/p99/p19.neb new file mode 100644 index 0000000..09ff324 --- /dev/null +++ b/p99/p19.neb @@ -0,0 +1,15 @@ +; P19 Rotate a list N places to the left. + +(def a (list "a" "b" "c" "d" "e" "f" "g" "h")) + +(func rotate (lst cnt) + (branch + ((eq? 0 cnt) lst) + ((> cnt 0) + (rotate (append (rest lst) (first lst)) (- cnt 1))) + ((< cnt 0) + (rotate (prepend (most lst) (last lst)) (+ cnt 1))))) + +(print (->string a)) +(print (->string (rotate a 3))) +(print (->string (rotate a (- 2)))) |
