在 Emacs 中,关于 UTF-8 的一切似乎都运行良好。问题是,我有时想打印出一封包含 Unicode 字符的电子邮件(我使用 mu4e 作为我的 MUA)。
\n\n我通常会在 a 中包含类似以下内容的内容mu4e:view:
From: A Person\n To: Me\n Subject: Notes on Chapter 9\n Date: Tue 22 Sep 2015 13:46:44 CEST\n Maildir: /mymaildir/INBOX\n User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)\n\n \xe2\x80\xa2 \xe2\x80\x9cfor open platforms\xe2\x80\x9d -> \xe2\x80\x9cfor \\textit{open platforms}, as defined in\n [123]. Such platforms include frobbing devices and home-assistant\n foobars.\xe2\x80\x9d\nRun Code Online (Sandbox Code Playgroud)\n\n问题是,当我这样做时M-x ps-print-buffer,纸上的物理输出如下所示:
...\n\n ? ?for open platforms? -> ?for \\textit{open platforms}, as defined in\n …Run Code Online (Sandbox Code Playgroud) 我现在已经坚持了几个小时的问题.我正在尝试使用Racket的语言扩展功能来定义DSL.我想做类似下面的伪代码.最后,我想在DSL中输入生成函数和宏,并且大多数现在似乎都可以工作,问题是提供的定义应该与声明处于同一级别.这甚至可能吗?现在已经晚了,我肯定我错过了一些非常微不足道的东西.问题的最基本的例子是:
tinylang.rkt:
#lang racket
; here we redefine module begin.
(provide (all-defined-out)
(except-out (all-from-out racket) #%module-begin)
(rename-out [module-begin #%module-begin])
)
(define-syntax (module-begin stx)
(syntax-case stx ()
[(_ stmts ...)
#`(#%module-begin
(define (hello) (print "Yes!") (newline))
; (provide (for-syntax hello))
(print "Function defined.")
stmts ... )]))
Run Code Online (Sandbox Code Playgroud)
现在我尝试在其他地方使用这种新语言:
try.rkt:
#lang s-exp "tinylang.rkt"
(hello)
Run Code Online (Sandbox Code Playgroud)
但是在加载第二个模块时,我收到错误"hello:模块中的未绑定标识符:hello".