macros相关内容

NodeJS 本机鼠标和键盘绑定

一直在寻找支持鼠标键盘监听和执行的原生nodejs模块 我找到了这个.. https://npmjs.org/package/mouse但是源代码看起来只支持浏览器. 解决方案 我一直在开发一个用于发送鼠标和键盘事件的模块,RobotJS. 示例代码: var robot = require("robotjs");//获取鼠标位置,用x和y返回一个对象.var mouse=r ..
发布时间:2022-01-11 20:01:35 其他开发

是否有用于生成 HTML 的 Emacs Lisp 库?

我正在寻找一种解决方案,允许我编写本机 Emacs Lisp 代码并在编译时将其转换为 HTML,例如 Franz 的 htmlgen: (html(((:div类“发布")(:h1 "标题")(:p “你好,世界!"))) 我当然可以自己写宏,但如果有任何解决此问题的项目,我很感兴趣. 解决方案 同时,我发现 一些代码,其中包含我想要的类似内容.现在我可以写了: (views-wi ..
发布时间:2022-01-11 20:01:29 前端开发

如何实现一个 Lisp 宏系统?

我已经在 node.js 上实现了自己的 Lisp,我可以像这样运行 s-expression: (断言 (= 3 (+ 1 2)))(def even? (fn [n] (= 0 (bit-and n 1))))(断言(甚至?4))(assert (= false (even?5))) 现在我想添加宏 - defmacro 函数 - 但这是我卡住的地方.我想知道如何在其他 Lisps 中 ..
发布时间:2022-01-11 20:01:22 其他开发

Lisp 的宏可以用于什么的示例

我听说 Lisp 的宏系统非常强大.但是,我发现很难找到一些实用的例子来说明它们的用途.没有他们就很难实现的事情. 谁能举几个例子? 解决方案 源代码转换.所有种类.例子: 新的控制流语句:您需要 WHILE 语句吗?你的语言没有?为什么要等待仁慈的独裁者明年增加一个.自己写吧.五分钟后. 更短的代码:您需要 20 个看起来几乎相同的类声明 - 只有有限数量的地方不同.编 ..
发布时间:2022-01-11 20:01:14 其他开发

Jinja2 内联注释

如何在 Jinja2 参数列表声明中添加注释? 我尝试过的一切都会出错:jinja2.exceptions.TemplateSyntaxError: unexpected char u'#' {{ Switch('var',[('1', 'foo'), # 评论 1('2', 'bar'), ## 评论 2('3', '朗姆酒'), {# 评论 3 #}]) }}{% 宏开关(var, c ..
发布时间:2022-01-11 20:00:42 Python

了解如何实现一次性 lisp 宏

在 Peter Seibel 的《Practical Common Lisp》一书中,我们可以找到非常复杂的一次性宏的定义(见页面底部 http://www.gigamonkeys.com/book/macros-defining-your-own.html). 我在过去 3 周内第 10 次阅读此宏定义,但无法理解它是如何工作的.:( 更糟糕的是,我无法自己开发这个宏,即使我了解它的用途和 ..
发布时间:2022-01-11 20:00:33 其他开发

了解当宏间接扩展自身时 C 的预处理器的行为

当我在处理一个充满宏技巧和魔法的大型项目时,我偶然发现了一个宏无法正确扩展的错误.结果输出为“EXPAND(0)",但EXPAND被定义为“#define EXPAND(X) X".,所以很明显输出应该是“0". “没问题",我心想.“这可能是一个愚蠢的错误,这里有一些令人讨厌的宏,毕竟有很多地方会出错".正如我所想的那样,我将行为不端的宏隔离到他们自己的项目中,大约 200 行,并开始研究 ..
发布时间:2022-01-11 20:00:23 其他开发

任何用于测试扩展 C/C++ #define 宏的实用程序?

似乎我经常花费太多时间来尝试让#define 宏完全按照我的意愿行事.我将在下面发布我当前的困境,并感谢任何帮助.但实际上更大的问题是是否有人可以推荐任何实用程序来快速显示宏实际在做什么?如果我能看出问题所在,即使是缓慢的试错过程似乎也会变得更快. 目前,我正在从我制作的 DLL 中动态加载一长串函数.按照我的设置方式,函数指针与导出的函数具有相同的名称,用于原型化它们的 typedef(s ..
发布时间:2022-01-11 20:00:16 C/C++开发

惰性求值与宏

我已经习惯了 Haskell 的惰性求值,现在我已经正确地使用了惰性求值,我发现自己对默认急切的语言感到恼火.这实际上是相当有害的,因为我使用的其他语言主要使懒惰地评估东西变得非常尴尬,通常涉及推出自定义迭代器等等.因此,仅仅通过获得一些知识,我实际上已经降低了在我的原始语言方面的工作效率.叹息. 但我听说 AST 宏提供了另一种干净的方式来做同样的事情.我经常听到诸如“懒惰评估使宏变得多余 ..
发布时间:2022-01-11 19:59:59 其他开发

预处理器宏在 Fortran 代码中的 Windows 上不起作用

亲爱的,我有一个包含预处理器宏的小型 Fortran 程序.下面是一个最小的例子.在 mac os x 上,它运行良好,但是当我在 windows 7(64 位)上编译它时,它总是打印 unknown operating system.我在 Windows 7 上使用 gfortran-4.8.0 (mingw32). 程序 foo隐式整数(i-n),双精度(a-h,o-p),+ 字符*8(x ..
发布时间:2022-01-11 19:59:06 其他开发

在 Common Lisp 中使用宏生成 TYPECASE

我有一个包含两个元素子列表的列表,它们将在程序过程中发生变化和增长.我想编写一个宏,它需要一个键并动态生成一个 case,例如: ;;这是保存 CASE 子句的列表(setf l '((数字 2) (符号 3)));;我想进行以下扩展(类型 'y(2号)(符号 3)) 我可以有一个只引用全局 l: 的宏 (defmacro m (x)`(类型,x,@l)) 会正确展开 (m 'y) ; ..
发布时间:2022-01-11 19:58:49 其他开发

在 Objective-C/C 中,你能写一个结合 2 个块的函数吗?

我经常发现自己创建了一个“包装器"块,它只是用于执行许多其他块,通常具有相同的类型签名. 假设我有 2 个具有相同类型签名的块: MyBlockT block1 = ^(NSString *string, id object) {//1 做一些工作};MyBlockT block2 = ^(NSString *string, id 对象) {//2 做一些其他的工作}; 有没有办法实现魔 ..
发布时间:2022-01-11 19:58:31 移动开发

为什么不能编译,如何实现它呢?

这是我正在玩的一些 C++ 代码: #include #include #定义输入,#define FOREACH(x,y) for(unsigned int i=0;i 但是,我收到一个错误: 宏“FOREACH"需要 2 个参数,但只有 1 个给定 如果我将 IN 更改为逗号,则代码会编译.如何让 IN 代替逗号? 更新:对于那些感兴趣的人,这 ..
发布时间:2022-01-11 19:58:03 C/C++开发

#define 是否应该在宏周围添加空格?

我在 http://www0.us.ioccc 查看该计划.org/1988/westley.c,在 另一个 SO 答案 - 它应该打印 pi 的值,大约 3.142,但是当我编译并运行它时,我得到 0.250.看起来当 GCC 预处理器(测试的 4.1.2 和 3.4.6)在代码上运行时,它会转换 #define _ -F 到 -F 但我认为,要让程序正常运行,它应该是 -F 即GC ..
发布时间:2022-01-11 19:57:47 其他开发