Да, замечательная идея не писать лишнего
Насколько я уже в курсе... Надо НЕ на замечательности идеи именно "не писать лишнего", для неофитов, упор делать! А надо на том, что есть возможность "доконструировать" функцию конкретным сочетанием значений "недописанных" параметров ПОЗЖЕ, для КОНКРЕТНОЙ ситуации в процессе работы программы. При этом, показывая, что экземпляр функции, с "НЕдописанными" - не просто "живёт, ожидая полноты записи остальных", а, "на его рснове" (скорее - как в Self-е или Smalltalk-е) генерируется новый функциональный объект новый экземпляр функции под конкретный набор "оставшихся аргументов". Но здесь, ёлки-палки, я, своим неофитским, в ФП, и глубоко заООПэченным интеллехтом, никак не пойму понять утверждения функциональщиков о большей мощности ФП! Я в, большом количестве современных ООП-яыков, могу сделать то же самое через функциональный объект. Причём, в отличие от того же Хаскеля, я могу варьировать степень "открытости" и "явности" работы механизма организации лямбд и замыканий. Ещё более того, я могу так организовать код (например в Си++), что у меня компилятор будет "требовать" от программиста явно выражать программистом этих "механизмов поддержки ФП" в своём коде или - позволит всё это "сделать умолчаниями" в моём коде! :))) В ФП (конкретно в Хаскеле) есть какая-то традиция совершенно каличных объяснений работы лямбд/функций в качестве "возвращаемого значения" и "частичного использования". Все, почему-то идут от высоколобой математики и вещают об этом, как о каком-то нее.ическом чуде и достижении интеллекта... :( А, потом, не помню - то ли у Шевченко, то ли у Курта, буквально два абзаца на свежую голову прочитал, провёл параллели с Си++ и - всё сразу стало ясно. Даже - в самОм Си++ прояснились некоторые нюансы.! :)))) Я понимаю и признаЮ, что головы у все - разные. И есть люди, для которых работать с математическими сущностями и понятиями - как дышать. И для таких объяснения в описании Хаскеля - как семечки пощёлкать... Но таких людей - мало. Остальной мир, в мышлении своём, "механистичен" и довольно примитивен. Я - тоже недалеко ушёл. И пока в голове не "стрельнуло" с аналогиями из мира ООП, ни фига непонятно было - какой-то сплошной цирк с фокусами и пассами рук. Главное, что понимаешь, что всё должно основываться на каких простых (скорее примитивных) понятиях, принципах и механизмах, а перед тобой специально мишурой блестят и быстро перемещают, чтобы - что? Специально этот примитив скрыть? То же самое касалось вопроса, где какие лексические единицы выражают значение "объектов", а какие идентифицируют их... Продолжаю въезжание...
Никакого мирового заговора с мишурой от хаскелистов не существует. Есть стремление к простоте и понятности. Я кроме хаскеля языков не знаю. Пишу на нём, так как нашлась для меня работа на нём. Даааалеко не гений/математик. Когда встречаюсь с другими языками, так же пробегает детская мысль, что создатели других языков дикие баяны-бабаяны, а вот на хаскеле проще бы было.
надо или не надо зависит от решаемой в какой-то конкретный момент задачи. где-то описание через специализацию будет полезным (и более удобным), а где-то через аргументы, а где-то вообще что-то совсем другое
из нарушения этого принципа и лезут все эти буритострадания и "я не могу понять Х"
ООП и ФП это ортогональные вещи, зачем их сравнивать вообще? ОКАМЛ предлагает ООП поверх ФП; йава предлагает ООП поверх процедурного программирования; хаскель предлагает ФП без ООП. если хочется посравнивать мощность ООП с чем-то, то тогда надо определиться с параметрами. желательно вообще определиться, что есть ООП, и что не есть ООП. можно посравнивать ООП с имеющимися в хаскеле средствами выражения
а можно просто пойти шипить продукты и радовать пользователей
Вв хаскелле ООП побольше чем в ООП =) ток оно другое и вообще, этого вашего ООП не существует! Так в СИКПе написано!
Обсуждают сегодня