我试图创造一个玩家来解决游戏大师的LISP。我尝试在助手函数中使用下面的嵌套循环
(defparameter *counter* 0)
;analyze the score to determine whether points need to be added to counter
(defun analyze (last-response)
(if (> (first last-response) 0)
(setf *counter* (+ (first last-response) *counter*))))
;helper function for find
我试图在嵌套的预测中找到索引号。例如,我试图这样做:
<!-- ko foreach:array1 -->
<!-- ko foreach:array2 -->(this index)
<!-- ko foreach:array3 -->
<!-- ko foreach:array4 -->
----( i want index of foreach array2 in here...)
<!-- /ko -->
&
是否有可能编写一个Common宏,该宏接受维度和变量的列表(迭代的主体),并创建由列表指定的尽可能多的嵌套循环组成的代码?
也就是说,就像:
(nested-loops '(2 5 3) '(i j k) whatever_loop_body)
应该扩大到
(loop for i from 0 below 2 do
(loop for j from 0 below 5 do
(loop for k from 0 below 3 do
whatever_loop_body)))
跟踪
正如怀远正确指出的,在编译时,我必须知道要传递给宏的参数。如果你真的像我
我的数据库中有一个大的INSERT...SELECT,我遇到了麻烦。对于上下文,目标表已经有大约100万个条目,我的SELECT查询返回了大约200万个条目。在生产服务器上,查询在20分钟内执行。
第一个问题:考虑到基地的大小,它是慢还是平均?
第二个问题(如果进展缓慢):在这一要求中,是否有改进的余地(我认为有)?我正在考虑用块,但我不知道怎么用。
INSERT INTO output
(id_people, id_product)
SELECT p.id_people, 146
FROM people p
INNER JOIN sell s
ON (s.id_sell= p.