问题标签 [backquote]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
82 浏览

common-lisp - 引用宏定义宏

我正在尝试编写一个宏来定义数组结构数据结构的一些帮助程序(基于代码段)。在该宏中,我定义了另一个宏,它有助于遍历 struct 中的所有槽值。问题是我无法使双重取消引用正常工作。这是代码:

因此,例如(defcomponent buzz x y)宏扩展为

这有点工作,但我想访问components内部with-buzz宏的参数,即像这样

我怎么可能做到这一点?我已经尝试了很多的组合,,@无济于事。

0 投票
1 回答
45 浏览

bash - 使用或不使用反引号的区别

使用不使用BACK QUOTE 什么区别

例如,这两个代码都可以正常工作。

第一个带有BACK QUOTE 的示例,第二个没有BACK QUOTE 的示例。

非常感谢您的帮助。

0 投票
2 回答
877 浏览

escaping - ',(引号逗号)在普通 lisp 中

',lisp中反引号表达式的作用和用途是什么?它有名字吗?它是否记录在某个地方?它有多普遍和有用?

例如:

我的猜测是,在这里它将exp在宏扩展时采用字面上的任何内容,并',exp用它替换。(与评估exp和替换,exp它相反)。

0 投票
1 回答
165 浏览

ruby - Ruby:如何在字符串中插入三个反斜杠?

我想在 ruby​​ 中使用反引号进行程序调用。该参数是一个包含一个或多个反引号的字符串变量,即“&E?@@A`?”。以下命令产生一个新标签作为其返回值:

从 ruby​​ 程序中,我可以按如下方式调用它并获得正确的结果:

我想使用标签的变量来实现相同的目的。所以我必须在变量 label = "&E?@@A`?" 中插入三个斜杠。为了逃避反引号。以下似乎工作,虽然它不是很优雅:

但是新变量不能在程序调用中使用:

在这种情况下,我没有从 nauty-labelg 得到答案。

0 投票
1 回答
399 浏览

variables - '符号作​​为变量的值是 void:' 当在 lambda 内的 defun 上使用参数时

我想让这个函数设置键绑定更短。

然后我用 2 个参数(键绑定和应用程序名称)编写更短的函数

当我尝试将密钥作为参数时,它将起作用

但是,当我尝试编写这样的函数时

或者

它引发错误:

0 投票
4 回答
2335 浏览

javascript - 如何在反引号或反引号内转义嵌套的单引号

假设我们在 ES6 中有以下模板文字。

我们如何转义单词It's中的单引号

另外,假设我们有以下模板文字:

我们如何逃避\n上面的。

0 投票
3 回答
131 浏览

macros - 在 Common Lisp 中通过循环生成包括取消引用拼接的代码

我正在编写一个宏来生成 Common Lisp 中另一个宏使用的代码。但是我对此很陌生,并且很难构建一个接收列表(bar1 bar2 ... barn)并通过循环生成以下代码的宏。

我想知道这是否可以在不涉及依赖SB-IMPL::UNQUOTE-SPLICE于实现的单词(例如 sbcl)的情况下实现。

也许我没有对我的问题给出明确的描述。事实上,我想写一个gen-case这样的宏

产生类似的东西

在一般情况下,被接受的列表gen-case可能包含两个以上的项目。我努力了

但是目标代码被插入到quote块中,因此在调用宏的宏中抛出异常gen-case。此外,我无法插入,@目标代码,因为直接插入会导致“逗号不在反引号内”异常。

生成的代码是另一个宏的一部分

我已经设置了一个读取宏

的本意DSI-Layer是添加一段代码来判断输入参数的类型。例如,代码

将转换为

现在我只是想知道是否DSI-Layer可以gen-case通过将类型名称和相应的代码模板传递给它来从另一个宏生成。

顺便说一句,我认为生成代码的具体含义在我的问题中并不重要。它们只是被视为数据。

0 投票
0 回答
432 浏览

assembly - 读取文件的内容并将其打印到汇编 x64 中的标准输出

我写了一个非常简单的汇编程序(x64,linux),它从 /etc/passwd 读取内容(从哪里并不重要)并将其写入标准输出。我用 nasm ( ) 编译它nasm -f elf64 foo.asm -o bar。我收到以下错误:./bar: 24: Syntax error: EOF in backquote substitution

这是我的代码:

是否也可以获得有关错误的更多信息?该程序编译在 nasm 中没有错误。谢谢 :)!

0 投票
0 回答
16 浏览

linux - vagrant 命令中的反引号

我的朋友们,出于学术原因,我正在我的 Windows 10 上开发一个 vagrant 引导系统。我需要使用带有反引号的不同命令,这些命令应该可以使用“alt gr”+“'”,但它不起作用。我已经尝试了所有可能的组合并在网上搜索过,但我没有弄清楚。有什么建议可以解决这个问题吗?即使你有一些重新映射的键盘命令

0 投票
1 回答
51 浏览

macros - 为什么这个 Common Lisp 宏不起作用?书上的答题卡错了吗?

我正在尝试通过Common Lisp:符号计算的简单介绍一书来学习 Common Lisp 。此外,我正在使用 SBCL、Emacs 和 Slime。

在第 14 章,最后一章,作者介绍了宏。出现以下问题:

编写一个名为的宏VARIABLE-CHAIN,它接受任意数量的输入。表达式(VARIABLE-CHAIN A B C D)应扩展为设置为A’BB’C表达式。C’D

答案纸是:

在此处输入图像描述

从pdf复制并粘贴到这里:

在 Emacs 中,我使用这个hack来删除智能引号。将它粘贴到 Emacs 中,我得到:

不幸的是,我无法将它编译为 Slime 的 REPL,它会引发错误:

我尝试更改'(progn为:

但它也没有工作:"comma not inside a backquote"

我做错什么了吗?或者,答题卡不正确?

谢谢。