несколько реляционных (сравнительных) операторов: почему `x <y>z` не является допустимым синтаксисом? - PullRequest
0 голосов
/ 19 сентября 2018

Это может быть глупый вопрос, но меня интересует, почему R не допускает использование нескольких операторов связи в выражении, скажем,

2 < 5 > 3

R возвращает

Ошибка: неожиданное '>' в "2 <5>"

вместо TRUE.

1 Ответ

0 голосов
/ 19 сентября 2018

Меня интересует, почему R не допускает использование нескольких операторов отношений в выражении.

Не могли бы вы назвать пример языка программирования / науки, который допускает 0 < 5 > 3?

Предположим, что этот синтаксис допустим, тогда каково правило по умолчанию для него?Что из следующего является правильным?

(0 < 5) > 3  =>  TRUE > 3  =>  1 > 3  =>  FALSE
0 < (5 > 3)  =>  0 < TRUE  =>  0 < 1  =>  TRUE

Я думаю, вы знаете, что допустимый синтаксис: (0 < 5) && (5 > 3).


Обратите внимание, что первоначальный заголовок вопроса "несколько логических операторов" имеет виднеточный.">" является оператором отношений, а не логическим.Использование нескольких логических операторов в выражении не является проблемой, скажем,

FALSE && FALSE || TRUE
!FALSE || TRUE

Однако имейте в виду, что (смешанные) логические операции не являются ассоциативными:

(FALSE && FALSE) || TRUE  =>  FALSE || TRUE  =>  TRUE
FALSE && (FALSE || TRUE)  =>  FALSE && TRUE  =>  FALSE

(!FALSE) || TRUE  =>  TRUE || TRUE  =>  TRUE
!(FALSE || TRUE)  ==>  !TRUE  => FALSE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...