aboutsummaryrefslogtreecommitdiff
path: root/p99/p21.neb
diff options
context:
space:
mode:
Diffstat (limited to 'p99/p21.neb')
-rw-r--r--p99/p21.neb16
1 files changed, 16 insertions, 0 deletions
diff --git a/p99/p21.neb b/p99/p21.neb
new file mode 100644
index 0000000..8b465e9
--- /dev/null
+++ b/p99/p21.neb
@@ -0,0 +1,16 @@
+; P21 Insert an element at a given position into a list
+
+(def a (list "a" "b" "c" "d"))
+
+(func extend (lst1 lst2)
+ (reduce append lst2 lst1))
+
+(func insert-at (item lst idx)
+ (extend
+ (slice lst 1 (- idx 1))
+ (prepend (slice lst idx) item)))
+ ;(slice lst idx)
+ ;(append (slice lst 1 (- idx 1)) item)))
+
+(print (->string a))
+(print (->string (insert-at "f" a 2)))