shithub: femtolisp

Download patch

ref: 1d1500e0931e604e2a50dfbcf4854a92e29d5c4f
parent: fc9cfd3c014aa94205a368f1da51bd0086e5dfaa
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Dec 23 19:40:50 EST 2024

document void stuff

--- a/flisp.boot
+++ b/flisp.boot
@@ -14,7 +14,7 @@
 	      #fn("6000n201l:" #()) #fn("6000n201m:" #()) 0 #fn("8000z0700}2:" #(vector))
 	      #fn("8000z0700}2:" #(aset!)) 0 0 0 0 0 0 0 0 0 0 0 #fn("9000n3012082>1|:" #(#fn("6000n1A061:" #())))
 	      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 #fn("8000z0700}2:" #(aref)) 0 0)
-	    *properties* #table(*funvars* #table(length= (lst n)  help (term))  *doc* #table(length= "Bounded length test.\n\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates."  help "Display documentation for the specified term, if available."  *properties* "All properties of symbols recorded with putprop are recorded in this table."))
+	    *properties* #table(*funvars* #table(void? (x)  length= (lst n)  void rest  help (term))  *doc* #table(void? "Return #t if x is #<void> and #f otherwise."  length= "Bounded length test.\n\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates."  void "Return the constant #<void> while ignoring any arguments.\n#<void> is mainly used when a function has side effects but does not\nproduce any meaningful value to return, so even though #t or nil could\nbe returned instead, in case of #<void> alone, REPL will not print\nit."  help "Display documentation for the specified term, if available."  *properties* "All properties of symbols recorded with putprop are recorded in this table."))
 	    *runestring-type* (array rune) *string-type* (array byte)
 	    *syntax-environment* #table(when #fn(";000z1200211POe4:" #(if begin))  help #fn("<000n170021527002252853\\0738551474504863B07450475086P51@30O47450@B0732627051524745047860:" #(getprop
   *doc* *funvars* princ newline print "no help for " #fn(string) void))  with-output-to #fn("<000z12021e1220e2e1e12315163:" #(#fn(nconc)
--- a/system.lsp
+++ b/system.lsp
@@ -12,8 +12,17 @@
 (unless (bound? '*properties*)
   (define *properties* (table)))
 
-(define (void . rest) #.(void))
-(define (void? x) (eq? x #.(void)))
+(define (void . rest)
+  "Return the constant #<void> while ignoring any arguments.
+#<void> is mainly used when a function has side effects but does not
+produce any meaningful value to return, so even though #t or nil could
+be returned instead, in case of #<void> alone, REPL will not print
+it."
+  #.(void))
+
+(define (void? x)
+  "Return #t if x is #<void> and #f otherwise."
+  (eq? x #.(void)))
 
 (unless (bound? '*syntax-environment*)
   (define *syntax-environment* (table)))