Здравствуйте, VladD2, Вы писали:
VD>Для сравнить я создал две реализации функции бинарного описка. Одну итеративную/императивную. Другую рекурсивную/функциональную:
VD>По-моему, итеративный вариант проще в понимании. Так же он явно быстрее, так как нет затрат времени на передачу "баластных" параметров через параметры.
А по моему, итеративный вариант как раз проще, только потому что в нем нет неосуществимых путей, как и в функциональном варианте.
На счет быстрее, я бы не стал так категорично утверждать. Во первых, нет никаких препятствий компилятору заменить хвостовую рекурсию на goto. Во вторых оптимизирующие компиляторы C/C++ так делают(например Intel C++). Наверное это должен делать и компилятор C#...
VD>Так что подобные примеры яряд ли можно считать доказательством приемущества функционального стиля. Это скорее доказательство того, что есть более оптимальные пути реализации и люди умеющие их находить.
Это вообще не доказательство, а показательство. Было бы это доказательством — тебе бы нечего было возразить.
Да, есть оптимальные пути реализации, но в функциональных языках большинство неоптимальных просто невозможно закодировать.