2013-08-05 39 views
2

我在Win-7 64位上使用Rebol/Core 278-3.1,从标准的windows命令行程序启动。我想知道如何向我的年轻朋友(网页设计师通过背景)解释,该解释者的CD命令不需要%Rebol cd不需要%?

它让我想起了DOS后不需要空间cd。 REPL不是一个shell,那么为什么把这个快捷方式当作一个shell呢?为什么当没有设置这样的单词时,目录的字符串名称被视为单词?乍看之下它不会使代码不必要地模棱两可吗?

(想想好像这是你的第一个编程语言的经验......还不如LS CD的MV在Unix shell的老用户。)

即使一个字设置,这个词被忽略CD,除非使用GET字...例子是:

dir %tests 

dir tests: 

“完成”,其中cd tests个作为是否有与无字get-word :tests


注: Saphirion R3具有以下行为:如果我设置一个字一个目录的名字,但在上层的情况下,获取字让我感动到该目录并以错误的大写字母显示。但是这个名字没有dir。我相信cd应该给出一个错误。当然,作为unicode和符合类似linux的世界的问题..或者这只适用于Windows?关我去我的虚拟箱与Ubuntu和音节...

+0

即使设置了一个单词,该单词也会被cd忽略,除非使用了一个get-word ...例如:dir%tests and tests:“complete”其中cd测试的行为就好像没有单词get -word:测试 –

+0

使用reb核心278-3.1在Win-7 64位上从标准win cmd shell启动时测试 –

+0

Saphirion R3具有以下行为:如果我将一个单词设置为dir名称,但是大写,则get -word将我移至该目录并以错误的大写字母显示。但是这个名字没有dir。 我相信cd应该给出错误。当然,作为unicode和符合类似linux的世界的问题..或者这只适用于Windows?关我用我的虚拟盒与Ubuntu和Syllable ... –

回答

3

你可以看看cd函数的源代码写

source cd 

在那里,你可以发现,为了方便起见,其他数据类型是转换为文件。

“为什么当没有设置这样的单词时,将dir的字符串名称视为单词?”

Rebol通过允许符号编程的语法识别单词。一个词是否已被设定或不被识别为单词根本无关紧要。

“[如果]我设置一个字一个目录的名字,但在上层的情况下,获取字让我感动到该目录,并将其显示在不正确的大写”

一些操作系统(如Windows)尽量不区分大小写,假设这对人类更方便。

由于相同的原因,默认情况下,Rebol字符串处理也是不区分大小写的。

“有没有人曾经暗示过chdir可能会有所有的便利和怪癖,而cd期望一个正确命名的文件?“

这基本上是发生了什么事,但以不同的方式。有一个change-dir功能坚守正确的(文件!)数据类型,而cd功能是‘方便快捷’。

+0

是的,我可以告诉他......但我一直向他展示Perl的不良方面,以及一些Ruby和Python(他仍然倾向Python或Ruby通过Rebol或我个人偏好的Curl + ObjectIcon ;-) 我的抛开偏好,我仍然敦促Rebol支持它 - 因为Object Icon是一个2人组,而Curl现在是日语和韩语团体,现在很少用英语发帖。 –

+0

有没有人曾经暗示chdir可能会有所有的便利和怪癖,而cd期望一个正确命名的文件?这增加了一个单词与绒毛/糖,但留下简单明确简单。 对于Perl人来说,方便在早期的Ruby中使用......甚至可以解释它的存在,因为它解释Objective-C,我相信。但是现在非C程序员正在学习Obj-C ;-)我接受http://被理解为没有%sigil /前缀的读取......除{comment}之外,还有其他情况,其中引用对于打算用于字符串的字符串是可选的是字符串值? –

+0

我使用rebol脚本主要是为了生成Curl标记......但他会使用HTML5 ......我可能更喜欢胶卷相机,但我仍然建议数码相机。 Rebol有一个伟大的团体......这对于一个新手来说非常重要。 Curl甚至不在StackOverflow上...也不是ObjectIcon。我尽量设置我的偏好/偏见一边。有一个YouTube公正而平衡地做出这种努力,而不是“我的/我们的更好”。我也更喜欢Pharo Smalltalk,但是在Smalltalk实现方面,依赖于除了我的首选项之外的其他考虑因素,我仍会推荐其他版本。 –

-1

你说。“的REPL是不是一个空壳”我完全同意与此相关的,我坚决反对:

append [x y z] q 

...出现通过调用快捷方式quit崩溃解释。这是一个容易犯的错误。我觉得在核心解释器中做类似的快捷键是愚蠢而愚蠢的。 Rebol是一种文字清晰的英语语言,能够清晰地读取......以及像LSCD不属于核心内容。如果有的话,它们应该是贝壳方言的一部分。

方言作者是否应该能够将单词视为字符串,即使合法单词的域不映射到合法字符串的范围?我认为应该允许,但我同意它在运输可执行文件中设置了一个不好的先例。

+0

允许很多,但开始干净和简单;-)但是不要为ALLOW_QUIRKS添加一个编译指示;-)(即使现在Smalltalk的Traits的作者现在也怀疑traits/mixins,因为它们变成了“class”特征还是实例特征,一个基本特征,而不是一个可用的插件。) –

+0

这与'cd'功能的问题无关。 – rebolek

+0

@rebolek问题的核心是关于在REPL命令行中为了方便而废除语言的形式。所以它与“REPL不是壳”点有关,更不用说CD是否用词。但是,推动缩写容忍的动机是相似的......懒惰不想键入百分号只是语言的同样翘曲的另一个方面,不管你是否在REPL上运行,这种语言都会影响到你。 。 – HostileFork