有人可以帮我调试http-post-simple.el
以便与最新版本的Emacs Trunk一起使用:http://www.emacswiki.org/emacs/http-post-simple.el这是使用Org-Mode Toodledo Sync所需的文件。打开Emacs时,错误消息为:
(lambda (field) ...) quoted with ' rather than with #'
错误来自http-post-simple.el
的摘录如下:
(defun http-post-encode-fields (fields &optional charset)
"Encode FIELDS using `http-post-encode-string', where
FIELDS is an alist of \(
\(field-name-as-symbol . \"field value as string\"\) |
\(field-name \"value1\" \"value2\" ...\)
\)*
CHARSET defaults to 'utf-8"
(let ((charset (or charset 'utf-8)))
(mapconcat #'identity
(mapcar '(lambda (field)
(concat (symbol-name (car field))
"="
(http-post-encode-string (cdr field) charset)))
(mapcan '(lambda (field)
(if (atom (cdr field)) (list field)
;; unpack the list
(mapcar '(lambda (value)
`(,(car field) . ,value))
(cdr field))))
fields))
"&")))
(defun http-post-encode-multipart-data (fields files charset)
"Return FIELDS and FILES encoded for use as the data for a multipart HTTP POST request"
(http-post-join-lines
(mapcar '(lambda (field)
(http-post-bound-field
(format "Content-Disposition: form-data; name=%S" (symbol-name (car field)))
""
(cdr field)))
fields)
(mapcan '(lambda (file)
(destructuring-bind (fieldname filename mime-type data) file
(http-post-bound-field
(format "Content-Disposition: form-data; name=%S; filename=%S" fieldname filename)
(format "Content-type: %s" (http-post-content-type mime-type charset))
""
data)))
files)
(format "--%s--" (http-post-multipart-boundary))))
答案 0 :(得分:8)
您通常不希望使用'
引用lambda表达式。
(lambda)
是自引用的,相当于#'(lambda)
,但'(lambda)
不是一回事。