小编Adr*_*ian的帖子

Rebol 2和3之间绑定行为差异的总结是什么?

关于变量绑定的当前深入文档目标Rebol 2.有人可以提供Rebol 2和3之间差异的摘要吗?

binding bind rebol rebol3 rebol2

10
推荐指数
1
解决办法
701
查看次数

Rebol中的'reword'功能是什么?我该如何使用它?

reword今天看到有人提到这个功能,但是它的文档非常简短.它看起来像shell脚本环境变量替换,或者可能是正则表达式替换,但不同.我如何使用此功能以及我将遇到什么样的陷阱?

templates template-engine rebol variable-expansion rebol3

9
推荐指数
1
解决办法
592
查看次数

为什么Rebol没有新线?同样处理换行符关键字和换行符?

我认为以下Rebol 3代码:

x: [newline 1 2]
y: [
1 2]

print x
print new-line? x
print y
print new-line? y
Run Code Online (Sandbox Code Playgroud)

应该输出:

<empty line>
1 2
true
<empty line>
1 2
true
Run Code Online (Sandbox Code Playgroud)

但输出的是:

<empty line>
1 2
false
1 2
true
Run Code Online (Sandbox Code Playgroud)

两个块在缩小时应该产生换行符后跟'1'和'2',因此,IMO应该相同地打印.不太清楚是否新线?在两个块上也应该给出相同的结果,因为newline关键字应该等同于这种测试的文字换行符.

reflection newline rebol

6
推荐指数
1
解决办法
259
查看次数

清理 Visual Studio 自定义构建步骤输出

我在 Visual Studio 2010 中创建了一个自定义构建步骤,通过运行命令行工具生成多个文件。该步骤在调用构建时创建这些文件,但在清理时,它只清理我在自定义构建步骤的“输出”字段中列为该步骤的输出的第一个文件。我用分号分隔了各个文件,还尝试了该字段的多行编辑器,并将每个文件放在单独的行上(VS 在关闭多行编辑器时插入分号)。在任何情况下,问题似乎都不是字段的格式 - 无论首先清理什么文件,其余的都没有。

通过阅读文档,您似乎应该能够将多个文件列为输出,以便该步骤可以正确清理它产生的任何工件。是否需要做任何特殊的事情来清理多个文件或者这是一个错误?

build visual-studio

5
推荐指数
1
解决办法
1682
查看次数

当使用`:key`时,Common Lisp中的#'adjoin是否按照HyperSpec工作?

查看HyperSpec中#'adjoin文档,我在示例部分中看到以下内容:

(setq slist '()) =>  NIL
(setq slist (adjoin '(test-item 1) slist)) =>  ((TEST-ITEM 1))
(adjoin '(new-test-item 1) slist :key #'cadr) =>  ((TEST-ITEM 1))
Run Code Online (Sandbox Code Playgroud)

我希望以下内容:

(adjoin '(new-test-item 1) slist :key #'cadr) =>  ((NEW-TEST-ITEM 1) (TEST-ITEM 1))
Run Code Online (Sandbox Code Playgroud)

我的期望是由于HyperSpec(17.2.1)中的以下文本:

当通过下图中列出的运算符F对序列S的每个元素Ei迭代地考虑对象O时,有时控制在S中测试O的存在的方式由F测试.控制是基于用a:test或:test-not argument指定的函数提供的.

并进一步:

对象O可能无法直接与Ei进行比较.如果提供了:key参数,则它是一个参数的指示符,用于将每个Ei作为参数调用一个参数,并产生一个用于比较的对象Zi.(如果没有:关键参数,Zi就是Ei.)

由:key参数指定的函数永远不会在O本身上调用.但是,如果函数在多个序列上运行(例如,在set-difference中发生),则O将是在另一个序列的元素上调用:key函数的结果.

因此我们将sl(序列,S)'((TEST-ITEM 1))和O作为'(new-test-item 1).要检查是否应该连接O,该函数#'cadr将应用于S的元素,第一个是'(test-item 1).所以,那个测试给出了:

(cadr '(test-item 1)) => 1
Run Code Online (Sandbox Code Playgroud)

现在,当'(new-test-item 1)根据应用于#'cadrS的E1 的结果#'eql(当没有提供时使用的等式函数)检查O,时:test,false结果应该意味着O被连接.至少这就是我的想法.我有什么误会?

lisp common-lisp ansi-common-lisp

3
推荐指数
1
解决办法
183
查看次数