函数"greaterthan",(< NUM1 NUM2)仅允许返回t/nil来比较2个值.
我想测试(var1> var2 <var3 <var4),有没有办法在lisp中只使用一个函数?如果没有,最好的程序是什么?
最好的程序是不要打扰:(and (< var2 var1) (< var2 var3) (< var3 var4))你的..>..<..<..链条读起来并不难.
测试升序是有意义的:
(require 'cl)
(defun cl-< (&rest args)
(every '< args (cdr args))
Run Code Online (Sandbox Code Playgroud)
这些天我不再犹豫(require 'cl)了,但如果你这样做,这里有另一种变体:
(defun cl-< (arg &rest more-args)
(or (null more-args)
(and (< arg (first more-args))
(apply #'cl-< more-args))))
Run Code Online (Sandbox Code Playgroud)