这是代码:
(defun my-random (max &optional least)
(setf max (+ max 1))
(if (null least)
(random max)
(if (numberp least)
(if (numberp max)
(let ((x (random (- max least))))
(+ x least))
(format t "~%在my-random函数中发现错误: 第一个输入值不是一个数字!~%"))
(format t "~%在my-random函数中发现错误: 第二个输入值不是一个数字!~%"))))
; my-random 100 1
(defun prozentual (probability command)
(if (numberp probability)
(if (listp command)
(if (> 101 probability)
(if (> probability (my-random 101 1))
command)
(format t "~%在prozentual函数中发现错误: 概率不得多于100!~%))
(format t "~%在prozentual函数中发现错误: 第二个参数不是一个命令!~%))
(format t "~%在prozentual函数中发现错误: 第一个参数不是一个数字!~%)))
; prozentual 100(格式t“as”)
This is the Clozure Common Lisp Version 1.6 runs on the results:
? (load "mika.cl")
> Error: Reader error: Illegal symbol syntax.
> While executing: CCL::%PARSE-TOKEN, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > (my-random 101 1)
61
1 > (my-random 101 100)
100
1 > (my-random 101 100)
100
1 > (my-random 101 100)
100
1 > (my-random 101 100)
100
现在“prozentual”功能无法使用..
答案 0 :(得分:9)
你错过了format
字符串末尾的双引号。
(defun prozentual (probability command)
(if (numberp probability)
(if (listp command)
(if (> 101 probability)
(if (> probability (my-random 101 1))
command)
(format t "~%在prozentual函数中发现错误: 概率不得多于100!~%"))
(format t "~%在prozentual函数中发现错误: 第二个参数不是一个命令!~%"))
(format t "~%在prozentual函数中发现错误: 第一个参数不是一个数字!~%")))