这是wordpress样式表中的一些我不明白的东西:
blockquote cite,
blockquote em,
blockquote i {
font-style: normal;
}
Run Code Online (Sandbox Code Playgroud)
blockquote和cite之间的空间是什么?我知道如果用逗号分隔它们,那么blockquote和cite都会有"font-style:normal;" 现在它们被空格分隔,这是否意味着如果将一个blockquote标签嵌入到一个引用标签中,它将得到"font-style:normal;"?
谢谢.
有时我需要遍历列表中的连续对.我现在这样做的方式是
(loop for x on lst while (not (null (cdr x)))
(do something on (car x) and (cadr x)))
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好/内置的方法来做到这一点.
我需要这个的原因有时是我想要的,例如一些添加连续对的函数
(1 2 3 4 5) ----> (3 5 7 9)
Run Code Online (Sandbox Code Playgroud)
是否有像reduce这样的内置函数可以让我得到这个?
我喜欢常见的口齿不清,但有时输入简单的数学表达式是非常痛苦的
a(8b^2+1)+4bc(4b^2+1)
Run Code Online (Sandbox Code Playgroud)
(当然我可以转换它,但它有点慢,我先写(+()()),然后在每个括号中我放(*()())...)
我想知道这里是否有人知道更好的输入方法.我正在考虑编写一个数学宏,在哪里
(math “a(8b^2+1)+4bc(4b^2+1)”)
Run Code Online (Sandbox Code Playgroud)
扩展到
(+ (* a (1+ (* 8 b b))) (* 4 b c (1+ (* 4 b b))))
Run Code Online (Sandbox Code Playgroud)
但解析是名称很长的变量的问题.
有人有更好的建议吗?
比方说我写了
(setf s (make-array (list 9 9) :element-type 'bit))
Run Code Online (Sandbox Code Playgroud)
所以s是一个9x9的位矩阵.
我想得到第一排的.我怎么做到的?
我本可以做到以下几点:
(setf s (make-array 9
:element-type 'array
:initial-element
(make-array 9 :element-type 'bit)))
Run Code Online (Sandbox Code Playgroud)
并通过(svref s 0)访问第一行.
但我想知道是否有内置方式.
(并且2 dim数组似乎分配更少的字节).
我做了
>>> b0 = open('file','rb')
Run Code Online (Sandbox Code Playgroud)
然后
>>> b0.read(10)
Run Code Online (Sandbox Code Playgroud)
给
b'\xb8\xaaK\x1e^J)\xab_I'
Run Code Online (Sandbox Code Playgroud)
如何将所有内容打印为纯十六进制字节?我想要
b'\xb8\xaa\x4b\x1e\x5e\x4a\x29\xab\x5f\x49'
Run Code Online (Sandbox Code Playgroud)
(PS:可以打印漂亮吗?
B8 AA 4B 1E 5E 4A 29 AB 5F 49
Run Code Online (Sandbox Code Playgroud)
或冒号分隔。)
我正在尝试编写一个函数来检查列表x中的每个元素是否都具有属性a,所以我写道:
(defun check (a x)
(if (listp x)
(eval (cons 'and (mapcar #'a x)))))
Run Code Online (Sandbox Code Playgroud)
但它不起作用.(基本上我想a成为一个函数的名称,比如说blablabla,在check-function的主体中,#'a我想要的是函数blablabla,而不是一个被调用的函数a.)现在上面的代码不起作用了.我认为在Lisp中应该能够插入函数.我该如何解决?
(这是我在lisp上的第一天,所以这可能是一个愚蠢的问题;)而BTW我正在使用Lispworks 6.0个人版.)
假设我想要做以下事情:
(loop for i from 1 to n do
(defun ith(lst)
(nth i lst)))
Run Code Online (Sandbox Code Playgroud)
显然我真正想做的是以下内容:
(defun 1th(lst)(nth 1 lst))
(defun 2th(lst)(nth 2 lst))
(defun 3th(lst)(nth 3 lst))
(defun 4th(lst)(nth 4 lst))
......
(defun 100th(lst)(nth 100 lst))
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
以下代码从1到n生成素数:
(defun prime-list(n)
(let ((a)(b)(x (floor (sqrt n))))
(loop for i from (floor n 6) downto 1 do
(push (1+ (* 6 i)) a)
(push (1- (* 6 i)) a))
(loop while (<= (car a) x) do
(push (car a) b)
(setf a (remove-if #'(lambda(m)(or (= 0 (mod m (car a))) (> m n))) a)))
(append '(2 3) (reverse b) a)))
Run Code Online (Sandbox Code Playgroud)
在我看来这部分
(setf a (remove-if #'XXX a))
Run Code Online (Sandbox Code Playgroud)
可以替换为
(delete-if #'XXX a)
Run Code Online (Sandbox Code Playgroud)
我希望这会让它变得更快.然而,当我进行更改时,函数现在进入无限循环并且永远不会返回.为什么?
可能重复:
在Lisp中,+函数实际上有多少输入?
以下代码给出了"太多参数"错误:
(setf u (loop for i upto 50000 collect 1))
(apply #'+ u)
Run Code Online (Sandbox Code Playgroud)
同样的
(apply #'= u)
Run Code Online (Sandbox Code Playgroud)
所以我想当用&rest写defun时,参数数量有一个上限.它是什么?我在这里搜索并尝试了该网站上的各种页面,但我无法弄清楚这一点.
在python中有一种类型的方法int,即int.from_bytes.它不是特定int的方法,而是类型上的方法.例如
>>> int.from_bytes(b'\xee\xff',"big")
61183
>>> int.from_bytes
<built-in method from_bytes of type object at 0x107fdb388>
Run Code Online (Sandbox Code Playgroud)
我该如何定义这样的东西?假设定义了一个名为"point"的类,我该如何定义类似的东西
>>> point.from_coordinates(3,5)
<__main__.point object at 0x10c0c9310>
>>> point.from_keys(b'\x12\x3e')
<__main__.point object at 0x10bed5890>
Run Code Online (Sandbox Code Playgroud)
?(假设点通过某种不同的方法初始化.)
common-lisp ×8
lisp ×4
python ×2
python-3.x ×2
byte ×1
class ×1
css ×1
methods ×1
prefix ×1
primes ×1
reader-macro ×1
s-expression ×1