if 的語法問題
最流行的 if 語法來自 C 語言, 也就是在圓括號裡放表達式。 我一直以為圓括號有點多餘, 明明就是表達式了,為什麼要再括起來?
if (test()) {
puts("test is true");
}
後來發現依絕大多數語言的邏輯, 表達式也是 statement, 而 statement 應該要用分號結尾, 或用換行結尾。 竟然變成我最討厭的 allman 風格。
if test()
{
puts("test is true")
}
if test(); {
puts("hey")
}
go 語言是沒有括號,但看起來反而不習慣。
if test() != nil {
foo();
}
還是我大 lisp 好看 <3
因為要比較就要呼叫函數,自然有括號。
不像其它語言括號有改變優先順序的歧義,
在 lisp 只有函數一種,沒有優先權問題。
(if (= a b)
(print "a = b")
(print "a != b"))