2013-08-05 41 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