shithub: femtolisp

Download patch

ref: def2a2acff3422f68f71be9573fb15a77af1e5ea
parent: 80efe36b6365192e400326c94f8112cba7a68617
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Tue Dec 31 20:54:22 EST 2024

document <, >, >= and <=

--- a/docs_extra.lsp
+++ b/docs_extra.lsp
@@ -9,6 +9,22 @@
           (error "docs: " sym ": funvars set but isn't a function")))
     `(symbol-set-doc ',sym ',doc ',funvars)))
 
+(doc-for (< a . rest)
+  "Return #t if the arguments are in strictly increasing order (previous
+one is less than the next one).")
+
+(doc-for (<= a . rest)
+  "Return #t if the arguments are in non-decreasing order (previous
+one is less than or equal to the next one).")
+
+(doc-for (> a . rest)
+  "Return #t if the arguments are in strictly decreasing order (previous
+one is greater than the next one).")
+
+(doc-for (>= a . rest)
+  "Return #t if the arguments are in non-increasing order (previous
+one is greater than or equal to the next one).")
+
 (doc-for (vm-stats)
   "Print various VM-related information, such as the number of GC calls
 so far, heap and stack size, etc.")
--- a/flisp.boot
+++ b/flisp.boot
@@ -14,9 +14,10 @@
 	      #fn("8000z0700}2:" #(=)) #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(lz-unpack ((data :to destination)
-							    (data :size decompressed-bytes))  void? ((x))  length= ((lst
-  n))  help ((term))  void (rest)  *prompt* (nil)  lz-pack ((data (level 0)))  cons? ((value))  vm-stats (nil)  * ((number…))  car ((lst))  cdr ((lst))  + ((number…)))  *doc* #table(lz-unpack "Return decompressed data previously compressed using lz-pack.\nEither destination for the decompressed data or the expected size of\nthe decompressed data must be specified.  In the latter case a new\narray is allocated."  void? "Return #t if x is #<void> and #f otherwise."  length= "Bounded length test.\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates."  help "Display documentation for the specified term, if available."  car "Returns the first element of a list or nil if not available."  *builtins* "VM instructions as closures."  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."  arg-counts "VM instructions mapped to their expected arguments count."  *prompt* "Function called by REPL to signal the user input is required.\nDefault function prints \"#;> \"."  lz-pack "Return data compressed using Lempel-Ziv.\nThe data must be an array, returned value will have the same type.\nThe optional level is between 0 and 10.  With level 0 a simple LZSS\nusing hashing will be performed.  Levels between 1 and 9 offer a\ntrade-off between time/space and ratio.  Level 10 is optimal but very\nslow."  Instructions "VM instructions mapped to their encoded byte representation."  cons? "Returns #t if the value is a cons cell."  vm-stats "Print various VM-related information, such as the number of GC calls\nso far, heap and stack size, etc."  * "Return product of the numbers or 1 with no arguments."  cdr "Returns the tail of a list or nil if not available."  + "Return sum of the numbers or 0 with no arguments."  *properties* "All properties of symbols recorded with putprop are recorded in this table."))
+	    *properties* #table(*funvars* #table(>= ((a . rest))  void? ((x))  length= ((lst n))  help ((term))  lz-unpack ((data
+  :to destination)
+  (data :size decompressed-bytes))  <= ((a . rest))  car ((lst))  < ((a . rest))  void (rest)  *prompt* (nil)  lz-pack ((data
+  (level 0)))  cons? ((value))  vm-stats (nil)  * ((number…))  cdr ((lst))  + ((number…))  > ((a . rest)))  *doc* #table(+ "Return sum of the numbers or 0 with no arguments."  >= "Return #t if the arguments are in non-increasing order (previous\none is greater than or equal to the next one)."  void? "Return #t if x is #<void> and #f otherwise."  length= "Bounded length test.\nUse this instead of (= (length lst) n), since it avoids unnecessary\nwork and always terminates."  help "Display documentation for the specified term, if available."  lz-unpack "Return decompressed data previously compressed using lz-pack.\nEither destination for the decompressed data or the expected size of\nthe decompressed data must be specified.  In the latter case a new\narray is allocated."  <= "Return #t if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  *builtins* "VM instructions as closures."  car "Returns the first element of a list or nil if not available."  < "Return #t if the arguments are in strictly increasing order (previous\none is less than the next one)."  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."  arg-counts "VM instructions mapped to their expected arguments count."  *prompt* "Function called by REPL to signal the user input is required.\nDefault function prints \"#;> \"."  lz-pack "Return data compressed using Lempel-Ziv.\nThe data must be an array, returned value will have the same type.\nThe optional level is between 0 and 10.  With level 0 a simple LZSS\nusing hashing will be performed.  Levels between 1 and 9 offer a\ntrade-off between time/space and ratio.  Level 10 is optimal but very\nslow."  Instructions "VM instructions mapped to their encoded byte representation."  cons? "Returns #t if the value is a cons cell."  vm-stats "Print various VM-related information, such as the number of GC calls\nso far, heap and stack size, etc."  * "Return product of the numbers or 1 with no arguments."  > "Return #t if the arguments are in strictly decreasing order (previous\none is greater than the next one)."  cdr "Returns the tail of a list or nil if not 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))  unwind-protect #fn("A000n220502050218722q1e3e2e1232402286e12587e12686e2e3e3e387e1e3e3:" #(#fn(gensym)
   let λ prog1 trycatch begin raise))  help #fn(";000n17002152853W072855147350424250>170026q535247350@B0722728051524735047960:" #(getprop
binary files a/flisp.boot.builtin b/flisp.boot.builtin differ