... И вообще, все эти iif'ы & Co. от лукавого (сугубое ИМХО). Пишите
условия явно, и чорт с ним, сколько там будет скобок. Считайте
по отступам, и будет вам щастья вагон.
З.Ы. Не знаете и ведаете, и даже духом не чуете, что такое, например,
писать на ЛИСПе под ДОСом. Ясное дело, "поколение пепси".
А мне кажется, очень разумная статья. Я и сам недолюбливаю код
с функциями более 50 строк длиной, и у меня частенько бывают функции
с телом из одной строки. Иначе появляются шедевры (например,
ZigZag), в полном алгоритме которых разбираются несколько человек
в трейд-инете (зато с отступами там все нормально)... Ну а что
касается iif(), то, конечно, именно такая реализация годится именно
для одного эксперта (все зависит от типов возвращаемых данных).
alexjou, на LISP не писал, но Turbo Prolog под DOS все же преподавал в курсе ИИ,
и даже курсовики были такие, чтобы что-нибудь такое сделать
на этом языке. Мозги там явно надо как-то иначе вывернуть, но
гимнастика для серого вещества полезная...
Mathemat: Ну а что касается iif(), то, конечно, именно такая реализация годится именно для одного эксперта (все зависит от типов возвращаемых данных).
Не соглашусь. Здесь как раз в реализации функции iif() намеренно используется тип double. Благодаря правилам приведения типов в MQL4, это позволяет функции корректно работать со всеми типами кроме строковых: double, int, datetime (который по сути является типом int), color (тоже int) и bool (однако использовать функцию с типом bool бессмысленно). Т.е. диапазон применения функции очень широк и годится для более чем одного эксперта. К сожалению, для строковых значений приходится писать и использовать отдельную функцию с другим названием, например string iifStr( bool, string, string ):
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
З.Ы. Не знаете и ведаете, и даже духом не чуете, что такое, например, писать на ЛИСПе под ДОСом. Ясное дело, "поколение пепси".
alexjou, на LISP не писал, но Turbo Prolog под DOS все же преподавал в курсе ИИ, и даже курсовики были такие, чтобы что-нибудь такое сделать на этом языке. Мозги там явно надо как-то иначе вывернуть, но гимнастика для серого вещества полезная...
Ну а что касается iif(), то, конечно, именно такая реализация годится именно для одного эксперта (все зависит от типов возвращаемых данных).
Не соглашусь. Здесь как раз в реализации функции iif() намеренно используется тип double. Благодаря правилам приведения типов в MQL4, это позволяет функции корректно работать со всеми типами кроме строковых: double, int, datetime (который по сути является типом int), color (тоже int) и bool (однако использовать функцию с типом bool бессмысленно). Т.е. диапазон применения функции очень широк и годится для более чем одного эксперта. К сожалению, для строковых значений приходится писать и использовать отдельную функцию с другим названием, например string iifStr( bool, string, string ):