0

我知道的equals至少兩個不同的用途登錄在R-編程語言:要麼在R對稱關係中使用等號'='?

(1),其爲棄用賦值運算符,即x = 3代替x <- 3
(2)用於將參數的值傳遞給函數,例如ggplot(df, aes(x = length, y = width))

這些運算符中的任何一個對應於對稱關係(in the sense of mathematics)?

的「等於」 ==操作符呢(我認爲),這就是爲什麼它最密切對應使用的equals數學籤(這始終是一個對稱關係)。

但是,例如,如果有人試圖運行ggplot(df, aes(length = x, width = y),則會出現錯誤,並且還會嘗試運行3 = x時發生錯誤。

因此,與數學不同,R中的等號是而不是是對稱關係嗎?這就是爲什麼<-被某些人優先選擇的原因,因爲它更好地表達了缺乏對稱性?

獎金問題:是否還有其他編程語言,等號不對應於對稱關係? PowerShell(我從來沒有聽說過它)might be one

+3

我不會正好叫=「過時」作爲賦值運算,雖然很多人喜歡< - –

+1

和成噸的語言使用=作爲分配 –

回答

3

=運算符在R中不對稱。當涉及賦值時,=基本上是一個函數,它接受一個符號和一個值並將該值賦予該符號。當涉及命名參數時,它實際上只是命名參數語法的一部分。

<-是優選的分配只是因爲它有一個明確的意義。