Информация об изменениях

Сообщение Re: Философско-практические вопросы про метапрограммирование от 08.02.2023 15:08

Изменено 08.02.2023 15:10 Voivoid

Re: Философско-практические вопросы про метапрограммирование
Здравствуйте, Максим, Вы писали:

М>Как думаете, более глубокое изучение функциональных парадигм и языков (haskell, ocaml или что-то подобное) поможет в этом? Там все таки система типов гораздо серьезней проработана... Или пустое это?


Опыт работы с функциональными языками считаю значительно поможет, т.к.

1) Частичная специализация в C++ это по сути тот же pattern matching в функциональных языках ( точнее частичная специализации это даже круче чем pattern matching, это унификация, как в prolog'е )
2) Шаблонное программирование иммутабельное, как в чисто функциональных языках

Конечно знакомиться с этими концепциями можно начинать и на C++, но это будет куда как сложее и менее продуктивно, чем если сразу начинать с haskell'а. При этом глубоко изучать haskell ( ну или любой другой чисто функциональный язык ) не надо, достаточно вот этих двух концепций — иммутабельность и паттерн-матчинг. Ну и про унификацию в prolog можно после этого чутка почитать, чтобы понять чем он от pattern матчинга отличается.
Re: Философско-практические вопросы про метапрограммирование
Здравствуйте, Максим, Вы писали:

М>Как думаете, более глубокое изучение функциональных парадигм и языков (haskell, ocaml или что-то подобное) поможет в этом? Там все таки система типов гораздо серьезней проработана... Или пустое это?


Опыт работы с функциональными языками считаю значительно поможет, т.к.

1) Частичная специализация в C++ это по сути тот же pattern matching в функциональных языках ( точнее частичная специализации это даже круче чем pattern matching, это унификация, как в prolog'е )
2) Шаблонное метапрограммирование иммутабельное, как в чисто функциональных языках

Конечно знакомиться с этими концепциями можно начинать и на C++, но это будет куда как сложее и менее продуктивно, чем если сразу начинать с haskell'а. При этом глубоко изучать haskell ( ну или любой другой чисто функциональный язык ) не надо, достаточно вот этих двух концепций — иммутабельность и паттерн-матчинг. Ну и про унификацию в prolog можно после этого чутка почитать, чтобы понять чем он от pattern матчинга отличается.