С Sample 35591,SAS: Почему оператор IN внутри макроса не является значением по умолчанию?
Оператор IN может быть использован в% IF заявление только тогда, когда параметр MINOPERATOR установлен в MACRO заявлении% или в качестве опции системы SAS®.
Требование отдельной опции для макрообработки кажется ненужным осложнением. Конечно, синтаксис макроса IN и то, что он может обрабатывать, должен отличаться от шага DATA IN из-за природы макрообработки. Но реализация заставляет программиста отслеживать два разных IN, несмотря на то, что они логически идентичны.
- Не являются ли они логически идентичными?
- Требуется отдельная опция для макроса IN, предназначенная для напоминания программистам о различиях с шагом DATA IN?
- Или есть проблема с ситуацией или обратной совместимостью, которая требует реализации макроса IN таким образом?
Документация для MINOPERATOR.
Обратная совместимость. Однажды я работал в банке, где ранний выпуск (который использовался по умолчанию в операторе) разбил несколько устаревших кодов. –
FWIW, я задавался вопросом, почему SAS не создала '% in'keyword и пыталась реализовать мою собственную. Создание макрофункции 'in': '% macro in; % let in = in; ∈% mend; 'Затем тестирование:'% put% in; 'Это генерирует следующее примечание в журнале:' ПРИМЕЧАНИЕ:% IN станет зарезервированным ключевым словом языка SAS Macro в будущей версии системы SAS . Изменение имени этого макроса позволит избежать конфликтов в будущем. –