Macros 为什么在宏定义中需要@符号?

在以下宏中时: (defmacro when (condition &rest body) `(if ,condition (progn ,@body))) 为什么会有一个“at”@符号?在准连续段中插入计算值时,有两个运算符: “逗号”运算符, “逗号拼接”运算符,@ 逗号,在准引号的sexpr中插入以下表达式的值,而逗号拼接需要表达式follow is a list,只能在准引号的列表中使用:其效果是将表达式的所有元素插入准引号的列表中运算符出现的位置 通过做一个小实验很容

Macros Fortran 90与C/C++;样式宏(例如#定义子名称(x)s##x)

我最近正在处理一个F90代码项目。我正在使用gfortran(linux和MinGW)编译它。文件loct.F90中有一些有趣的内容 # define TYPE real(4) # define SUBNAME(x) s ## x # include "loct_inc.F90" # undef SUBNAME # undef TYPE # define TYPE real(8) # define SUBNAME(x) d ## x # include "loct_inc.F9

Macros 这种自由项变量错误(在宏展开时产生)可以避免吗?

我正在开发一个DSL,在扩展宏时遇到了“自由项”故障。我想知道这是否可以避免。我已将问题简化为以下情况 假设我们有这个表达式: val list = join { 0 1 2 3 } println(list) 其中join是一个宏,其实现为: def join(c: Ctx)(a: c.Expr[Int]): c.Expr[List[Int]] = { import c.mirror._ a.tree match { case Block(list, ret)

Macros 在自定义Racket语言中,如何定义递归宏?

我正在尝试用自定义Racket语言创建一个递归宏。 但是,虽然宏可以通过#lang racket正确展开,但如果使用我的新语言实现,宏将失败 例如,下面是一个简单宏f的递归定义,它扩展到最后一个参数: ;;my-lang.rkt #朗格球拍 (提供#%的数据) #%模块开始 定义语法 (对于语法大小写) 语法 引发语法错误 #%应用程序 引用 #%基准面) #lang s-exp“my-lang.rkt” (定义语法(f stx) (语法大小写stx() [(x)#'x] [(xxs…)#'(

Macros 如何为记事本++;?

我想为Notepad++编写一个宏,它应该分别用char4、char5、char6替换char1、char2、char3。这篇文章可以帮助您了解一些相关信息: 假设使用字母数字单词,您可以使用: 搜索=^([A-Za-z0-9]+)$ Replace=可替换:“\1” 或者,如果您只想突出显示行并在选择中使用“全部替换”和“替换”(使用相同的替换): 搜索=^(+)$ ^指向行的起点。 $指向该行的末尾 \1将是括号内的源匹配。记事本++中的宏只是一组编码操作:开始录制,操作缓冲区,可能激活菜

Macros 强制Source Insight识别新宏

可以在Source Insight中创建用户定义的宏。据知情人士透露: 宏保存在扩展名为.EM的文本文件中。这些文件将添加到项目、项目符号路径上的任何项目或基础项目中。宏文件成为项目的一部分后,文件中的宏功能将作为用户级命令在“键指定”或“菜单指定”对话框中可用 在处理项目时,我从Source Insight下载了一个宏文件,并将其与扩展名.em一起保存在基本项目中。但是,当我打开“关键点指定”对话框时,它没有出现 然后我同步了项目中的文件,但宏仍然没有出现。我甚至重建了我的项目,但宏仍然没有出

Macros 如何让NVCC包含宏定义信息?

通常,使用gcc,您可以使用-g指定调试信息的级别,如果使用-g3,它将在可执行文件中包含预处理器宏定义,像gdb这样的调试器可以读取并允许您在调试期间使用这些定义。我想用nvcc来调试CUDA程序 我目前正在修改SDK中的模板程序,因此使用默认的Makefile和Makefile中包含的common.mk。在“ifeq($(dbg),1)”块中的common.mk中,我尝试了以下方法: 将-g3置于公共标志下 将-g3置于NVCCFLAGS下 将-g3置于CXXFLAGS和CFLAGS下 将

Macros 检查typedef别名的值

我正在尝试编写一些DSP代码,这些代码需要在浮点和定点环境中运行,数字类型将在编译时确定。我想使用宏或typedef为特定的数字类型别名。乘法、除法和其他数学函数在实现中会因数值类型的不同而有很大的不同,因此我需要某种类型的开关来确定是否包含某些头,或者根据数值类型更改实现 我将给出一个简短的代码片段作为示例 typedef samp_t float; // or #define samp_t float (bad naming practice?) // An alternative in

Macros 球拍宏如何将椭圆传递给辅助函数?

鉴于: 如何接收辅助对象中的图案和省略号?我甚至不确定包裹尸体是否。。。inside()是正确的,但我已经看过了,它是唯一不会崩溃的东西 process body过程以包含额外()的语法结束。我可以试着把它拆开,但我只是想知道正确的方法是什么 processbody在body模式之前和之后使用一些代码进行包装。与define类似,我希望能够为宏提供多个表单,而不是一个列表中的所有表单。所以,如果给定(form1)(form2),其中form2是省略号,进程体应该(做某事)(form1)(form

Macros 完全展开宏窗体

我想学习Lisp的内部结构,所以我想看看每件事情是如何实现的 比如说, (macroexpand '(loop for i upto 10 collect i)) 给我(在SBCL中) 但LOOP-BODY、WITH-LOOP-LIST-COLLECTION-HEAD等仍然是宏。如何完全展开宏窗体?您可以尝试使用MACROEXPAND-ALL,但您可能得到的并不一定有用 在类似于LOOP的情况下,真正重要的是宏本身,而不是生成的代码。(注意:如果您对可移植性不感兴趣,SBCL提供macroex

Macros NSI脚本:使用insertmacro从另一个宏调用一个宏时出错

我试图在NSI脚本中从另一个宏调用1个宏。两个宏都有MB_ok cancel。编译时会出现以下错误: ** [exec]错误:函数中已声明标签“abort_inst:” ** 请提供帮助(下次,请确保您的代码不会出现奇怪的换行) 插入宏时,之间的所有代码!宏和!macroend将取代您的!插入宏。因此,不应在宏中使用静态标签–只能插入宏一次(使宏无意义!)可以使用相对跳转(例如Goto+2)或通过向标签添加参数使标签动态,例如: !macro myMacro param1 ${param

Macros 如何在SISC/Scheme中创建生成另一个宏的宏?

在Guile中或使用SRFI-46时,可能会出现如所示的情况。但在SISC或“纯方案”R5R中有可能吗 我知道不使用省略号是可能的,但是如果我需要像下面的例子那样使用内部省略号呢 (define-syntax define-quotation-macros (syntax-rules () ((_ (macro-name head-symbol) ...) (begin (define-syntax macro-name (syntax-rule

Macros AX-如何从缓存刷新宏

AX宏似乎仍在缓存中 我在AOT中定义了一个宏,并在类声明中声明了它 因为我需要更改其中一个值 我想强制所有用户在重新打开AX时获取新值 但用户仍在获取宏的旧值 宏定义:TestMacro 类声明:TestClass 尝试的解决方案: 删除与TestClass相关的使用数据(针对所有用户):失败 从类声明中删除并重新添加宏:已工作 关于如何在AX中刷新宏缓存的其他一些想法?据我所知,没有专门用于宏的缓存,而是一个缓存所有AOT对象的对象缓存。您可以使用工具>开发工具>应用程序对象>刷新字典/AO

Macros 在宏中使用列标题映射列

我有两张工作表。我必须根据列名将值从第二个工作表复制到第一个工作表。 对于从G列到C列的应对策略数据,我使用- 如果Wks2.Range(“C”和I)Wks.Range(“G”和J).值,则 Wks2.范围(“C”和I).值=Wks.范围(“G”和J) 如果结束 但这里的问题是,列序列在secong one中不断变化。所以映射不能硬编码在列字母表上。 我不知道如何使用列标题映射它们。 提前谢谢。您可以在标题中搜索ColumnName。找到匹配项后,检索其行作为引用 Dim cellRef作为整数

Macros Elixir:生成捕获所有函数调用

我有一个宏,它将catch all函数放在模块的末尾,因此生成的模块类似于: defmodule Module1 do <module body> ## Generated catch-all functions def fun1(_, _), do: :ok ## ..more catch-all functions...## end ## of module 在模块的主体中 我想在生成catch-all函数之前,我可以遍历模块的主体AST并对函数签名进行

Macros 子集数据集时使用sas宏中的where

我试图在子集数据集时使用宏中的where option mprint mlogic; %macro subset_by_make (dsn, make); data temp; set &dsn(where = (make = &make)); run; %mend subset_by_make; %subset_by_make(sashelp.cars, Acura); 但是我得到一个错误,

Macros 测试符号是否是宏中的哈希表

我想构建一个宏,它可以根据作为参数提供的符号类型扩展为不同的形式。一个小的可复制示例(其中两个,实际上……在sbcl和ccl上失败)如下所示: λ (defmacro what-am-i (a-thing) (etypecase a-thing (list `(format t "im a list")) (vector `(format t "im a vector")) (hash-table `(form

Macros 宏模式不匹配

因此,我有一个用于制作对象的宏,它的用法如下: (define ob (class (a 10) (b 20) (set-a! (lambda (x) (set! a x))) (set-b! (lambda (x) (set! b x))) (foo (lambda (x) (* (+ a b) (- a b)))))) (ob 'a) -> 10 (ob 'b) -> 20 (ob 's

Macros 在common lisp中,是否有一种方法可以为宏编写“应用”等效代码?

我有一个宏:mac1&rest args,它接受任意数量的参数 既然我不能对宏使用apply,而且我对宏的实现没有控制权,那么如何使给定列表的函数fun1 lst使用扩展列表调用宏呢 更新:我认为这个问题已经足够了,但最好陈述一下我的真实情况: 后现代提供了查询宏: macro: query (query &rest args/format) 例如,您这样称呼它: 质疑 从col1=$1::integer和col2=$2::date的示例中选择* 123 2017-01-01 :st

Macros 在Elixir宏中使用防护装置

我正在研究宏,它将采用一个函数并添加一些附加功能。例如: 这: 应转换为: def this_works(a, b) do IO.puts("LOGGING whatever") a + b + 1 end 这就是我目前所拥有的。尝试在iex中运行这段代码: defmodule MyMacro do defmacro defstate(ast, do: block) do {fn_atom, _} = Macro.decompose_call(a

Macros 展开汇流UI的全部展开宏

我已经在谷歌和Atlassian论坛上搜索过这个问题,但在任何地方都没有找到答案 我正在尝试为UI展开(重要提示:不是常规展开)宏设计一个“全部展开”按钮 我找到了。我一直在搞乱它,但我还没能让它在我的合流页面上运行。我怀疑部分问题在于UI扩展命名约定——假定常规扩展宏的链接使用“.Expand control”,但我想知道它是否需要类似于UI扩展、UI扩展控制、RWUI等。我尝试了不同的组合,但没有成功 还有其他人见过这个吗?有人发现了吗 提前谢谢…我想出来了!正确的类名是rwui\u exp

Macros 使用特殊变量作为宏输入?

我想制作一个宏,用于将变量绑定到给定var列表和val列表的值 这是我的密码- (defmacro let-bind (vars vals &body body) `(let ,(loop for x in vars for y in vals collect `(,x ,y)) ,@body)) 虽然如果调用like(让bind(ab)(12)…),它可以正常工作,但是调用

Macros 如何匹配锈蚀';宏中的s`if`表达式?

我试图编写一个宏来重写特定的防锈控制流,但我很难匹配if表达式。问题是谓词是一个表达式,但是expr后面不允许有块或{ 我最好的办法就是使用tt: macro_rules! branch { ( if $pred:tt $r1:block else $r2:block ) => { if $pred { $r1 } else {

Macros 方案(Kawa)-如何在另一个宏中强制宏扩展

我想制作一个宏,当在类定义中使用它时,会创建一个字段、一个公共setter和一个注释。然而,宏似乎没有扩展,主要是因为它在其他(类定义)宏中使用 下面是一个示例,说明如何使用一个字段定义类: (define-simple-class test-class () (foo :: java.util.List )) 我的宏(目前仅定义字段): 但是,如果我尝试使用它: (define-simple-class test-class () (autowire java.util.Li

Macros 是否可以有一个同时包含程序宏和逻辑的板条箱?

当您想要共享使用过程宏的库时,双板条箱方法是否不可避免 我想提供一个包含逻辑和宏的板条箱。我尝试的第一件事是: my_proc_宏 ├── 货舱 ├── src/lib.rs └── 我的箱子 ├── 货舱 └── src/lib.rs 在my_proc_macro板条箱中,我试图pub使用my_板条箱::*

Macros 公共Lisp宏中的闭包

在下面的代码中,如何使x和y变量反映在宏调用时给出的表达式 (defmacro defrule (init-form &rest replication-patterns) (let (rule-table) `(destructuring-bind (p x y) ',init-form #'(lambda (w h) (list x y))))) 展开呼叫时,如: (defrule (70 (* 1/2 w) (+ h 3))) 它返回: (DESTRUC

Macros 如何使用远程Dekstop连接和Amazon AWS EC2运行多个宏实例

我试图使用Amazon的AWS EC2运行多个远程桌面连接实例,并通过macro Express(分别安装在每个节点上)在每个实例上运行宏文件,但每次最小化一个实例时,该宏的鼠标移动都会冻结,进程将挂起。由于我正在运行的这些宏依赖于特定的鼠标定位/移动,有没有办法在最小化后使它们在每个实例上运行 非常感谢, Jake如果用键盘更改屏幕,则上一台服务器上的鼠标位置不会更改。 不完全符合您的要求,但可能会很有帮助: CTRL+ALT+← - 将您切换到主机 CTRL+ALT+→ - 将您切换回远程计

Macros 使用宏的优秀应用程序和程序的集合

我对宏非常感兴趣,并且刚刚开始了解它的真正威力。请帮我收集一些宏系统的有用信息 到目前为止,我有以下结构: 模式匹配: 安德鲁·赖特和布鲁斯·杜巴。图案 一九九五年配对计划 序言精神中的关系: 多莱·西塔兰。在schelog中编程。 丹尼尔·p·弗里德曼、威廉·E·伯德、, 和奥列格·基塞柳夫。推理的 阴谋家。麻省理工学院出版社,2005年7月 马蒂亚斯·费莱森。音译 开始进入方案。技术报告 印第安纳大学,1985年 可扩展循环构造: 塞巴斯蒂安·埃格纳。敏锐的理解力 方案中:SRFI-42的

Macros 是否可以通过Komodo宏执行,如果可以,我如何执行?

我有将近300页,所有的页面都包含4张幻灯片和4张拇指。我需要复制标记内的文本,并且我需要在图像的alt文本中仅使用名称、前面的名称、后面的名称、详细的名称。。。因此,页面的标题应该与文本相同 我使用komodo编辑器。如果可以使用Javascript/jQuery实现这一点,那么就可以了。如何为此编写komodo宏 有专家吗。。?有什么好主意吗 提前感谢。不。这里有一些更适合这项工作的工具:

Macros Go中的C风格宏

我已经玩围棋一周了,我从C中错过了一些东西,那就是预处理器宏 除了破解一个构建脚本,让文件通过clang-E,我还能用什么来获得这个功能?我认为cpp、m4或任何可能满足您对go预处理的需求的东西。如果这是一个好主意或不是你的决定,但请注意,任何预处理都是采用任何已发布Go代码的一个重大障碍。(例如,依赖于makefiles的构建也是如此。)如评论中所述,构建标志可能是解决任何问题的最佳方法。例如,如果您希望某些功能仅在开发中可用,请使用dev标志: 文件常量\u dev.go: // +bui

Macros 如何处理Clojurescript宏中所需的Clojurescript代码?

假设我有一个X.clojurescript和一个X.clojure名称空间。clojurescript中的所有内容都是clojurescript代码,X.clojure中的所有内容都是clojure代码。不幸的是,我不能在Clojurescript中直接定义宏,我必须在Clojure中定义宏,然后使用 (ns X.clojurescript.abc (:require-macros [X.clojure.def :as clj])) 这很好。但是,如果宏(在X.clojure中定义)需要引

Macros iMacro在类中选择链接

这些是我想要选择并在新选项卡中打开的链接 <div class="text-right" style="border: 2px solid rgb(0, 0, 255);"><a href="http://thisisaurl.com/klw4azh.html">Fine</a></div> 有多个链接,我想选择和网址都是不同的。我可以突出显示包含链接的div,但我永远无法实际选择链接并在新选项卡中打开它。有人能帮我吗?试试这个: tag p

Macros SAS宏如何定义单词的一部分?

我的程序是这样的: data a; input p1-p3; datalines; 1 2 3 4 5 6 ; %macro hello(version=); proc print data=a; where &version2=5; run; %mend hello; %hello(version=p) 如何找到p2=5的位置?另一种方法是从代码中删除2并将其添加到宏调用中,如下所示: %macro hello(version=); proc print data=a;

Macros intellij—执行eclipse CTRL+;ALT+;向上复制行,并在重复字段中以插入符号结束?

我想要复制,就像intellij中的标准CTRL+D热键一样,但在eclipse版本中,使用插入符号可以复制行。例如,原始行位于底部,您可以使用插入符号编辑顶部的重复行 例如,按CTRL+D组合键可以执行此操作 | <-- caret originaltext| (hit CTRL+D) you end up with duplicatedoriginaltext originaltext| but what i want duplicatedoriginaltext| ori

Macros 如何在MathJax中定义自定义宏

我试图在MathJax中定义LaTeX文件中使用的自定义宏 可以定义简单的宏(单参数),没有任何问题,如 \newcommand{\braket}[1]{\langle #1 \rangle} 作为 但要与复杂的事物作斗争 \newcommand{\Abs}[2][]{\left\lvert#2\right\rvert_{\text{#1}}} 试图给它下个定义 Macros: { Abs: ['{\\left\\lvert#2\\rvert_{\\text{#1}}}', 2] }

Macros Rust中程序宏解析的怪异之处

我正在尝试解析一个类似于此的宏: annoying!({ hello({ // some stuff }); }) 尝试使用类似于下面的过程宏定义来实现这一点,但是我得到了一个我没有预料到的行为,我不确定我正在做一些我不应该做的事情,或者我发现了一个bug。在下面的示例中,我试图找到每个块所在的直线, 对于第一个块(就在里面!),它报告正确的行,但是对于内部块,当我尝试打印它们时,它总是1,不管代码在哪里等等 #![crate_type="dylib"] #![

Macros 可以在一行上使用多个宏吗?

有人知道是否可以对一行使用多个宏吗?比如说, @devec,@inbounds[expr] 宏是表达式生成的函数的类似物 编译时。正如函数将参数值的元组映射到 返回值,宏将参数表达式的元组映射到返回的 表情。使用以下通用语法调用宏: 下面是一个使用两个著名宏的示例(尽管有点荒谬): # This is an assert construct very similar to what you'd find in a language like # C, C++, or Python. (This

Macros 如何在生成后事件中使用宏区分TFS生成和手动生成

在.proj文件的TFS生成后脚本中,我想确定项目生成是通过TFS触发生成还是通过手动触发生成进行的。 有人可以建议我如何在生成后事件中使用宏来执行此操作。简短回答:您可以在csproj文件中使用IsDesktopBuild MSBUILD属性来区分TFS和本地生成 长答覆: 开发人员还是团队建设 为了区分构建环境,我们必须实现一种机制来检测在哪个环境中执行构建。换句话说,我们需要知道是运行由开发人员执行的本地构建,还是运行在构建服务器上的团队构建。 事实上,我们需要考虑三种不同的构建环境: ·

Macros Racket,将列表转换为值

我正在设计一个包含两部分的程序。一个在我的电脑上,一个在树莓皮上 我经常通过TCP/IP发送消息,从我的计算机上的一个过程发送到Raspberry Pi上的一个过程。所以基本上它所做的就是发送目的地、消息和参数列表 然后在Raspberry Pi上,我读取目的地(一个生活在Raspberry Pi上的特定对象),并将带有参数的消息发送给该对象 在raspberry pi上的对象中,我有许多程序如下所示: (define (a-procedure argument1 argument2 ... a

Macros term xmodemsend命令

我一直在使用Tera术语通过串行端口更新变送器上的固件,但这个过程相当简单,用户输入密集。我正在尝试编写一个宏: 1) 连接到用户指定的串行端口(检查) 2) 将xmodem接收命令发送至变送器(检查) 3) 使用xmodemsend将新固件文件发送至变送器(无检查) 4) 当用户单击“重复”时重复(检查类型) 基本上,我的问题是如何准确地实现xmodemsend命令。我阅读了Tera Terms索引文件,该文件包含所有命令的列表和说明,但不管出于什么原因,它都不起作用 固件文件位于TeraTe

Macros clojure定义中的多重算术

我在Clojure中遇到了一个与defmacro相关的奇怪问题,我的代码如下 (defmacro ttt ([] (ttt 1)) ([a] (ttt a 2)) ([a b] (ttt a b 3)) ([a b c] `(println ~a ~b ~c))) 我用(ttt),它应该变成(println 1 2 3),然后打印“1 2 3”,但我得到的是 ArityException Wrong number of args (-1) passed to: t1$ttt c

Macros 关键字和默认参数宏干扰Racket中的变量参数

我正在使用本页()中提到的宏,它允许我使用{arg_name arg_value}作为默认参数和命名参数(不需要#:key_name)。它在其他方面工作正常,但它干扰了带有变量参数(fnname.vars)的函数声明。错误只是“语法错误”。如何纠正这一点?谢谢你的评论/回答 编辑:我当前的代码是: (require syntax/parse/define ; for define-simple-macro (only-in racket [define old-define]

Macros Lisp源代码重写系统

我想使用已宏扩展的Emacs Lisp代码,并对其进行反宏扩展。我在Emacs论坛上问过这个问题,但没有成功。见: 然而,有人会认为,这种类型的东西,S表达式转换,正是Lisp的拿手好戏。我相信在Lisp中可以像在Emacs Lisp中一样使用defmacro 所以肯定有程序转换系统,或者术语重写系统,可以在这里进行调整 理想情况下,在某些情况下,这样的工具能够直接在defmacro上进行模式查找和替换。然而,即使我必须手动提出特定的搜索和替换模式来添加到转换系统中,拥有这样一个框架仍然是有用

Macros 递归宏解析Rust中的匹配臂

我试图编写一个宏来将一组规则扩展为执行令牌匹配的代码,但无法生成正确的代码而不会导致宏扩展错误。我知道我可以用其他方法处理这个问题,但这里的关键问题不是如何解析令牌,而是如何编写一个宏,该宏可以使用匹配臂递归地扩展令牌树 我们希望从字符串中读取一个标记并将其打印出来。需要添加更多代码以将其转换为更有用的内容,但此示例用于说明这种情况: #[derive(Debug, PartialEq)] enum Digit { One, Two, Three, Ten,

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 56 页