2012-06-07 63 views
4

在math.SE,一個question about math notation enerated的編程語言如何解釋組的討論{1,...,N}當n = 0當n = 0時,編程語言是否對{1,...,n}有一致的解釋?

問一個數學符號的問題表示將R代碼1:n

根據評論,當n = 0時,{1,...,n}的數學解釋是這是一個空集。隨後的評論表明C與此解釋一致,因爲for (int i = 1; i < n; i++)返回一個空集合,因爲它迭代了0次。

這是我不清楚什麼R中的等效語句是,但1:0返回向量[1,0]

因此,for (i in 1:0) print(i)迭代1和0(I解釋爲類似於上述的C代碼)

這是因爲{1,...,n}不是1:n的正確表示法?

這是否意味着R違反了普遍規則?

編程語言之間是否存在一致的解釋?

+2

'for'循環根本不會返回任何內容,並且不一定會對集合起作用。它在封閉的塊中執行代碼。該代碼可能會或可能不會執行類似於枚舉的操作。 –

+0

@EricJ。我更新了代碼以使其執行某些操作。我之前排除了它,因爲有些東西是任意的。這說明了嗎? – Abe

+1

@EricJ。爲了迂迴,在R'for()中返回NULL,但是這樣做是不可見的。 –

回答

8

每個數學形式主義都有自己的符號。建議有一個「通用符號」是非常「非數學」的。如果你想要有多個符號系統存在的數學領域的例子,請看與張量或團體相關的符號。

在R代碼x <- 1:0中返回有序矢量c(1,0)。正如代碼x < - 2:-2返回c(2,1,0,-1,-2)。代碼x <- seq(1, length=0)返回一個長度爲0的序列,該序列在控制檯會話中打印爲integer(0)。 R並沒有真正設計用來模擬設置符號,但它確實具有一些設置功能,並且它還具有更全面地實現設置符號的包。

3

一些語言支持範圍的概念,在C中,你使用for循環做什麼是任意的,你可以讓它意味着0或者你可以使它向後計數。在其他語言中,第二個數字小於第一個數字的範圍通常會產生一個遞減的數字序列。但它的武斷,並沒有普遍的規則。

4

C沒有一個for循環運行的集合的概念。甲forfor(a;b;c) d;僅僅是語法糖:

a; 
loop: if (!b) goto done; 
d; 
c; 
goto loop; 
done: ; 
相關問題