这拒绝编译.注释掉该(setf roll行可以编译.但是,(setf roll...它本身在REPL中正确评估.
程序:
;; loop n times
; sum up number of hits over value v
(defun num-hits (n v)
(let
((roll)
(table))
(setq table (make-hash-table))
;;until i == n
(loop for i from 1 to n
(setf roll (rolld6))
; (if (nilp (view_hash table))
; (oxuassign_hash table roll 1)
; (assign_hash table (+ 1 (view_hash table roll))))
)
(+ (view_hash table 5) (view_hash table 6))))
Run Code Online (Sandbox Code Playgroud)
信息:
*** - LOOP: illegal syntax near (SETF ROLL (ROLLD6)) in (LOOP FOR I FROM 1 TO N (SETF ROLL (ROLLD6)))
Run Code Online (Sandbox Code Playgroud)
循环宏在循环体之前需要"do".你有
(loop for i from 1 to n
(stuff)
Run Code Online (Sandbox Code Playgroud)
而你需要
(loop for i from 1 to n do
(stuff))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |