aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-02-10 07:23:02 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-02-11 00:40:19 +0000
commit2d49ed25acc03550036b124e2ffade0edf812150 (patch)
tree23b0c41c005e4f8a8079e6c49ce3d006cedcfc59
parentb29855047be9a172d570db71600425b2b06a8a59 (diff)
downloadcantedraw-2d49ed25acc03550036b124e2ffade0edf812150.tar.gz
cantedraw-2d49ed25acc03550036b124e2ffade0edf812150.tar.bz2
cantedraw-2d49ed25acc03550036b124e2ffade0edf812150.zip
Implement a "take" function to read subsequences of a list
Basically a wrapper over subseq but for when using `->>` as the list is the last parameter.
-rw-r--r--lib.functions.lisp3
-rw-r--r--packages.lisp6
2 files changed, 6 insertions, 3 deletions
diff --git a/lib.functions.lisp b/lib.functions.lisp
index c7b3ed1..30c1e64 100644
--- a/lib.functions.lisp
+++ b/lib.functions.lisp
@@ -29,3 +29,6 @@ each member is STEP distance apart."
(fn parse-integer* (inp) (-> (string) (or integer list))
(parse-integer inp :junk-allowed t))
+
+(fn take (n lst) (-> (fixnum list) list)
+ (subseq lst 0 n))
diff --git a/packages.lisp b/packages.lisp
index d50945b..58c848e 100644
--- a/packages.lisp
+++ b/packages.lisp
@@ -21,15 +21,15 @@
(:use :cl)
(:export
:_ :--> :->>
- :while
:-> :fn
+ :while
:$))
(defpackage lib.functions
(:use :cl :lib.macros)
(:export
- :range
- :parse-integer*))
+ :parse-integer*
+ :range :take))
(defpackage main
(:use :cl :lib.macros)