LINUX.ORG.RU
ФорумTalks

[fp?] Вычислительный практикум


0

1

Добрый день.

Здесь наверняка кто-нибудь проходил курс «численные методы» и практикум к нему. Вот пришла и моя очередь.

Основной вопрос — выбор подходящего инструмента. Преподаватель называл в качестве возможных вариантов C, Maple, Matlab и т.п., но можно и что-нибудь своё.

На C и прочей императивщине тупо кодить задание неохота. Также неохота разбираться с чем-то мёртвым и прикопанным. Более-менее знаком с Хаскелем, но показывать чисто функциональный код далёкому от этих сфер человеку, думаю, будет невесело.

Думаю, идеальным был бы хороший многопарадигменный язык, живой и красивый.

Прошу варианты.

Ответ на: комментарий от Kuka

>Раскрытие моей identity может негативно повлиять на карьеру

Узнают, что вы троллите на ЛОРе и уволят по причине «слишком толсто»? ;)

srj ★★
()

>> Думаю, идеальным был бы хороший многопарадигменный язык, живой и красивый.

многопарадигменный

красивый


Ты уж выбери — красивый или мультипарадигменный.

Elemir
()
Ответ на: комментарий от Kuka

> Поскольку студент мне изначально показался головастым, я не поленился ему разжевать кое-какие моменты из C++, включая Boost и некоторые новинки С++11, типа тех же лямбд. Также аккуратно намекнул, что рекурсия - не самый лучший способ решать сеточные задачи. Рассказал про параллельные алгоритмы и GPU. После того, как код на С++ получился короче раза в три, а выигрыш по производительности, дай Б-г памяти, составил раз 25, у юноши больше не возникало вопросов насчет использования ФЯП в ЧМах.
Жалко, что для Вас в детстве не нашлось преподавателя, который бы с таким же троллфейсом переписывал ваши плюсы на фортран.

Elemir
()

Бери scala:
1) тебе как хаскелисту будет привычней
2) можна и императивный код писать
3) можна прикрутить какой нибудь Processing (http://habrahabr.ru/blogs/scala/114158/) для визуализации.

Yarikx
()
Ответ на: комментарий от Kuka

Kuka, записал тебя в личный список людей, которые все такие стараются общаться на ЛОРе уважительно. Спасибо.

dikiy ★★☆☆☆
()
Ответ на: комментарий от Felagund

Молодой человек, если ваша тема еще актуальна, то у меня к вам два предложения.

Во-первых, разобраться с некоторой путаницей, которая имеется у вас в голове. Вы пишете: не хочу императивщины. И тут же заводите речь о функциональных языках. В то же время антонимом термина «императивный» является термин «декларативный». Если говорить о функциональных языках, то им традиционно противопоставляются процедурные. Определения вы без труда найдете в книжках и в Википедии. Так чего же хочется конкретно вам? Если «декларативщины» - то смотреть надо в сторону Matlab-подобных инструментов. В них, как правило, требуется меньше описаний того, «как делать», зато больше того, «что делать». Если же хочется именно «функциональщины», то едем дальше.

Подавляющее большинство ваших задачек подразумевают большое количество однотипных вычислений над массивами однородных данных. В терминах императивного процедурного программирования это - циклы. Если пытаться решать подобные задачи в функциональной парадигме, то альтернатив, грубо говоря, две. Для простых случаев - отображение (map), для более сложных - различные рекурсивные схемы. Некоторые функциональные языки не исключают тех же циклов (но в чем тогда смысл использования этих языков?) Второе мое предложение такое: как только вы получите конкретный вариант задания, опубликуйте его в /development со ссылкой на данный топик. Разумеется, никто не будет решать ваш практикум за вас. Зато здесь подскажут, как реализовать алгоритм в разных парадигмах, а потом с интересом посмотрят на результат.

Полагаю, после этого и у вас в голове многое разложится по полочкам. С приветом, Кукинштейн

Kuka ★★
()

Бери матлаб и не парься. Все лабы напишешь за две минуты.

provaton ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.