如何写一个“破坏性的” Lisp 中的 dolist 宏
我试图以最直观的方式在 Common Lisp 中编写一个简单的冒泡排序(也可以在 Emacs Lisp 中使用): (defun bubble-sort-long (list) (labels ((rec (li…
顶级环境中的过程与宏
我将感谢您帮助理解在下文描述的情况下过程和宏之间的行为差异。 情况 1(程序) (define bar (lambda (x) (foo x))) closure of 'bar' contains…
C++ - 如何消除宏? (将应用程序移植到 ie c# 中)
我创建了简单的虚拟机,为了创建指令字节和开关,我使用 C++ 宏,它看起来像这样(这是简化的示例): typedef t_sint_b32 int typedef t_sint_b16 sh…
用于 2 维和 3 维索引的 C 宏
我正在寻找任意值的 2 维和 3 维索引的快捷方式,并且我知道这适用于给定的数组 a[] #define a(i,j,k) a[(i)*span*span+(j)*span+(k)] #define b(i,j)…
如何检测 C++ Xcode 中带有宏的编译器?
我在 iOS 项目中混合 Objective-C (*.m) 和 Objective-C++ (*.mm) 源文件。 当我在 *.m 文件中导入 C++ 头文件时,如何排除头文件中特定于 C++ 的代码…
有什么技巧可以禁止 C 宏作为左值调用吗?
例如, struct node { struct node *left, *right } #define LEFT(X) (X->left) #define RIGHT(X) (X->right) 我想在不改变现有宏接口的情况下禁…
C 预处理器、递归宏
为什么M(0)和N(0)有不同的结果? #define CAT_I(a, b) a ## b #define CAT(a, b) CAT_I(a, b) #define M_0 CAT(x, y) #define M_1 whatever_else #def…
为什么这个宏定义中需要@符号?
在下面的when宏中: (defmacro when (condition &rest body) `(if ,condition (progn ,@body))) 为什么有一个“at”@符号?…
我可以区分字符串文字参数和计算结果为字符串的参数吗?
我正在创建一种特定于领域的语言。其中一个宏调用看起来像这样: (my-macro foo (bar "baz" qux) yay) 按照我编写 my-macro 的方式,这里的第二个参数…
需要宏方面的帮助并通过外部 Oracle DB 连接访问 DB?
在现有的 Microsoft Access 数据库中,我们有从 Oracle DB 映射输入值的表,我希望在宏的帮助下将其从 Oracle DB 清除到 Access DB。我的问题是,无论…
emacs 上的自定义评论框
的 Emacs 宏会是什么样子 # abc def 将以下行:转换为: # +-------------+ # | abc def | # +-------------+ ?宏根本不需要通用:它可以对框规格进…
C 预处理器可以执行简单的字符串操作吗?
这是C宏怪异问题。 是否可以编写一个宏,以字符串常量 X (“...”) 作为参数,并求值为相同长度的字符串 Y,使得 Y 的每个字符都是 X 对应字符的[常量…
我是在重新发明(方形)轮子吗?
我们应该知道,Clojure 的 map 可以应用于一个序列: (map #(* %1 %1) [1 2 3]) (1) ..或者应用于多个序列,这样: (map vector [0 1] [2 1]) (2) =…